logo

CuriousTab

CuriousTab

Discussion


Home C Programming Structures, Unions, Enums Comments

  • Question
  • Will the following code work?
    #include<stdio.h>
    #include<malloc.h>
    
    struct emp
    {
        int len;
        char name[1];
    };
    int main()
    {
        char newname[] = "Rahul";
        struct emp *p = (struct emp *) malloc(sizeof(struct emp) -1 +
                        strlen(newname)+1);
    
        p->len = strlen(newname);
        strcpy(p -> name, newname);
        printf("%d %s\n", p->len, p->name);
        return 0;
    }
    


  • Options
  • A. Yes
  • B. No

  • Correct Answer
  • Yes 

    Explanation
    The program allocates space for the structure with the size adjusted so that the name field can hold the requested name.

  • Structures, Unions, Enums problems


    Search Results


    • 1. Will the following declaration work?
      typedef struct s
      {
          int a;
          float b;
      }s;
      

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 2. By default structure variable will be of auto storage class

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 3. Is it necessary that the size of all elements in a union should be same?

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 4. The elements of union are always accessed using & operator

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 5. Is there easy way to print enumeration values symbolically?

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 6. A pointer union CANNOT be created

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 7. What will be the output of the program if it is executed like below?
      cmd> sample
      /* sample.c */
      #include<stdio.h>
      
      int main(int argc, char **argv)
      {
          printf("%s\n", argv[argc-1]);
          return 0;
      }
      

    • Options
    • A. 0
    • B. sample
    • C. samp
    • D. No output
    • Discuss
    • 8. What will be the output of the program (myprog.c) given below if it is executed from the command line?
      cmd> myprog one two three
      /* myprog.c */
      #include<stdio.h>
      #include<stdlib.h>
      
      int main(int argc, char **argv)
      {
          printf("%s\n", *++argv);
          return 0;
      }
      

    • Options
    • A. myprog
    • B. one
    • C. two
    • D. three
    • Discuss
    • 9. What will be the output of the program (sample.c) given below if it is executed from the command line?
      cmd> sample friday tuesday sunday
      /* sample.c */
      #include<stdio.h>
      
      int main(int sizeofargv, char *argv[])
      {
          while(sizeofargv)
              printf("%s", argv[--sizeofargv]);
          return 0;
      }
      

    • Options
    • A. sample friday tuesday sunday
    • B. sample friday tuesday
    • C. sunday tuesday friday sample
    • D. sunday tuesday friday
    • Discuss
    • 10. What will be the output of the program (sample.c) given below if it is executed from the command line?
      cmd> sample "*.c"
      /* sample.c */
      #include<stdio.h>
      
      int main(int argc, int *argv)
      {
          int i;
          for(i=1; i<argc; i++)
              printf("%s\n", argv[i]);
          return 0;
      }
      

    • Options
    • A. *.c
    • B. "*.c"
    • C. sample *.c
    • D. List of all files and folders in the current directory
    • Discuss


    Comments

    There are no comments.

Enter a new Comment