Top

Discussion

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

 

  • A.65536
  • B.Allocation failed
  • C.Error
  • D.No output

Answer: B

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

No comment is present. Be the first to comment.
Loading…

Post your comment