logo

CuriousTab

CuriousTab

Discussion


Home C Programming Memory Allocation Comments

  • Question
  • What will be the output of the program (16-bit platform)?
    #include<stdio.h>
    #include<stdlib.h>
    
    int main()
    {
        int *p;
        p = (int *)malloc(20);
        printf("%d\n", sizeof(p));
        free(p);
        return 0;
    }
    


  • Options
  • A. 4
  • B. 2
  • C. 8
  • D. Garbage value

  • Correct Answer



  • Memory Allocation problems


    Search Results


    • 1. What will be the output of the program?
      #include<stdio.h>
      #include<stdlib.h>
      
      int main()
      {
          union test
          {
              int i;
              float f;
              char c;
          };
          union test *t;
          t = (union test *)malloc(sizeof(union test));
          t->f = 10.10f;
          printf("%f", t->f);
          return 0;
      }
      

    • Options
    • A. 10
    • B. Garbage value
    • C. 10.100000
    • D. Error
    • Discuss
    • 2. How many bytes of memory will the following code reserve?
      #include<stdio.h>
      #include<stdlib.h>
      
      int main()
      {
          int *p;
          p = (int *)malloc(256 * 256);
          if(p == NULL)
              printf("Allocation failed");
          return 0;
      }
      

    • Options
    • A. 65536
    • B. Allocation failed
    • C. Error
    • D. No output
    • Discuss
    • 3. What will be the output of the program?
      #include<stdio.h>
      #include<string.h>
      
      int main()
      {
          char *s;
          char *fun();
          s = fun();
          printf("%s\n", s);
          return 0;
      }
      char *fun()
      {
          char buffer[30];
          strcpy(buffer, "RAM");
          return (buffer);
      }
      

    • Options
    • A. 0xffff
    • B. Garbage value
    • C. 0xffee
    • D. Error
    • Discuss
    • 4. What will be the output of the program (sample.c) given below if it is executed from the command line?
      cmd> sample Jan Feb Mar
      /* sample.c */
      #include<stdio.h>
      #include<dos.h>
      
      int main(int arc, char *arv[])
      {
          int i;
          for(i=1; i<_argc; i++)
              printf("%s ", _argv[i]);
          return 0;
      }
      

    • Options
    • A. No output
    • B. sample Jan Feb Mar
    • C. Jan Feb Mar
    • D. Error
    • Discuss
    • 5. What will be the output of the program (sample.c) given below if it is executed from the command line (turbo c under DOS)?
      cmd> sample Good Morning
      /* sample.c */
      #include<stdio.h>
      
      int main(int argc, char *argv[])
      {
          printf("%d %s", argc, argv[1]);
          return 0;
      }
      

    • Options
    • A. 3 Good
    • B. 2 Good
    • C. Good Morning
    • D. 3 Morning
    • Discuss
    • 6. What will be the output of the program?
      #include<stdio.h>
      #include<stdlib.h>
      
      int main()
      {
          int *p;
          p = (int *)malloc(20); /* Assume p has address of 1314 */
          free(p);
          printf("%u", p);
          return 0;
      }
      

    • Options
    • A. 1314
    • B. Garbage value
    • C. 1316
    • D. Random address
    • Discuss
    • 7. Assume integer is 2 bytes wide. What will be the output of the following code?
      #include<stdio.h>
      #include<stdlib.h>
      #define MAXROW 3
      #define MAXCOL 4
      
      int main()
      {
          int (*p)[MAXCOL];
          p = (int (*) [MAXCOL])malloc(MAXROW *sizeof(*p));
          printf("%d, %d\n", sizeof(p), sizeof(*p));
          return 0;
      }
      

    • Options
    • A. 2, 8
    • B. 4, 16
    • C. 8, 24
    • D. 16, 32
    • Discuss
    • 8. Assume integer is 2 bytes wide. How many bytes will be allocated for the following code?
      #include<stdio.h>
      #include<stdlib.h>
      #define MAXROW 3
      #define MAXCOL 4
      
      int main()
      {
          int (*p)[MAXCOL];
          p = (int (*) [MAXCOL])malloc(MAXROW *sizeof(*p));
          return 0;
      }
      

    • Options
    • A. 56 bytes
    • B. 128 bytes
    • C. 24 bytes
    • D. 12 bytes
    • Discuss
    • 9. What will be the output of the program in Turbo C?
      #include<stdio.h>
      
      int main()
      {
          char near *near *ptr1;
          char near *far *ptr2;
          char near *huge *ptr3;
          printf("%d, %d, %d\n", sizeof(ptr1), sizeof(ptr2), sizeof(ptr3));
          return 0;
      }
      

    • Options
    • A. 4, 4, 8
    • B. 4, 4, 4
    • C. 2, 4, 8
    • D. 2, 4, 4
    • Discuss
    • 10. What will be the output of the program?
      #include<stdio.h>
      
      int main()
      {
          char huge *near *ptr1;
          char huge *far *ptr2;
          char huge *huge *ptr3;
          printf("%d, %d, %d\n", sizeof(ptr1), sizeof(ptr2), sizeof(ptr3));
          return 0;
      }
      

    • Options
    • A. 4, 4, 8
    • B. 2, 4, 4
    • C. 4, 4, 2
    • D. 2, 4, 8
    • Discuss


    Comments

    There are no comments.

Enter a new Comment