Home / C Programming / Memory Allocation :: Find Output of Program

C Programming :: Memory Allocation

  1. What will be the output of the program?

     #include
     #include  
        
        int main() 
        {     
              int *p;   
              p = (int *)malloc(20); /* Assume p has address of 1314 */     
              free(p);   
              printf("%u", p);  
              return 0;
       } 
    

  2. A.

    1314

    B.

    Garbage value

    C.

    1316

    D.

    Random address


  3. Point out the correct statement will let you access the elements of the array using 'p' in the following program?

     #include
     #include  
     
     int main() 
     {   
         int i, j;   
         int(*p)[3];    
         p = (int(*)[3])malloc(3*sizeof(*p));  
         return 0;
     } 
    

  4. A.
     for(i=0; i3; i++)
     {   
       for(j=0; j3; j++)   
             printf("%d", p[i+j]); 
     } 
    B.
    for(i=0; i3; i++)   
        printf("%d", p[i]); 
    C.
      for(i=0; i3; i++)
      {   
           for(j=0; j3; j++)   
                printf("%d", p[i][j]); 
      } 
    D.
    for(j=0; j3; j++)
         printf("%d", p[i][j]); 

  5. What will be the output of the program (16-bit platform)?

    #include 
    #include
      int main()
      {    
          int *p;   
          p = (int *)malloc(20);    
          printf("%d\n", sizeof(p));   
          free(p);     
          return 0;
     } 
    

  6. A.

    4

    B.

    2

    C.

    8

    D.

    Garbage value


  7. What will be the output of the program?

    #include 
    #include 
     
     int main()
     {    
          char *s;  
          char *fun();    
          s = fun();     
          printf("%s\n", s);    
          return 0;
     } 
     char *fun()
     {    
         char buffer[30];   
         strcpy(buffer, "RAM");     
         return (buffer); 
     } 
    

  8. A.

    0xffff

    B.

    Garbage value

    C.

    0xffee

    D.

    Error


  9. What will be the output of the program?

     #include
     #include 
     
      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;
       } 
    

  10. A.

    10

    B.

    Garbage value

    C.

    10.100000

    D.

    Error


  11. Assume integer is 2 bytes wide. How many bytes will be allocated for the following code?

     #include 
     #include
     #define MAXROW 3
     #define MAXCOL 4  
    
     int main()
     {   
         int (*p)[MAXCOL];   
         p = (int (*) [MAXCOL])malloc(MAXROW *sizeof(*p));    
         return 0;
     } 
    

  12. A.

    56 bytes

    B.

    128 bytes

    C.

    24 bytes

    D.

    12 bytes


  13. Assume integer is 2 bytes wide. What will be the output of the following code?

     #include
     #include 
     #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; 
    } 
    

  14. A.

    2, 8

    B.

    4, 16

    C.

    8, 24

    D.

    16, 32


  15. How many bytes of memory will the following code reserve?

     #include
     #include 
    
     int main()
     {
         int *p;  
         p = (int *)malloc(256 * 256);  
         if(p == NULL)       
              printf("Allocation failed");  
        return 0; 
    } 
    

  16. A.

    65536

    B.

    Allocation failed

    C.

    Error

    D.

    No output