Memory Allocation

Q1: 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;
}

A 65536

B Allocation failed

C Error

D No output

ANS:A - 65536

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.



img not found
img

For help Students Orientation
Mcqs Questions

One stop destination for examination, preparation, recruitment, and more. Specially designed online test to solve all your preparation worries. Go wherever you want to and practice whenever you want, using the online test platform.