Home / C Programming / Memory Allocation :: Discussion

Discussion :: Memory Allocation

  1. 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; 
    } 
    

  2. A.

    65536

    B.

    Allocation failed

    C.

    Error

    D.

    No output

    View Answer

    Workspace

    Answer : Option B

    Explanation :

    Hence 256*256 = 65536 is passed to malloc() function which can allocate upto 65535. So the memory allocation will be failed in 16 bit platform (Turbo C in DOS).

    If you compile the same program in 32 bit platform like Linux (GCC Compiler) it may allocate the required memory.


Be The First To Comment