Home » C Programming » Memory Allocation

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

Correct Answer: Allocation failed

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.


← Previous Question Next Question→

Discussion & Comments

No comments yet. Be the first to comment!
Join Discussion