logo

CuriousTab

CuriousTab

Discussion


Home C Programming Memory Allocation Comments

  • Question
  • 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

  • Correct Answer
  • 24 bytes 


  • Memory Allocation problems


    Search Results


    • 1. 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
    • 2. 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
    • 3. 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
    • Discuss
    • 4. 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
    • 5. 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
    • 6. 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
    • 7. 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
    • 8. What will be the output of the program (in Turbo C under DOS)?
      #include<stdio.h>
      
      int main()
      {
          char huge *near *far *ptr1;
          char near *far *huge *ptr2;
          char far *huge *near *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
    • 9. What will be the output of the program under DOS?
      #include<stdio.h>
      
      int main()
      {
          char huge *near *far *ptr1;
          char near *far *huge *ptr2;
          char far *huge *near *ptr3;
          printf("%d, %d, %d\n", sizeof(ptr1), sizeof(**ptr2), sizeof(ptr3));
          return 0;
      }
      

    • Options
    • A. 4, 4, 4
    • B. 4, 2, 2
    • C. 2, 8, 4
    • D. 2, 4, 8
    • Discuss
    • 10. What will be the output of the program?
      #include<stdio.h>
      
      int main()
      {
          char far *near *ptr1;
          char far *far *ptr2;
          char far *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, 4
    • D. 2, 4, 8
    • Discuss


    Comments

    There are no comments.

Enter a new Comment