What is the difference between calloc and malloc?

1. calloc allocates a block of memory for an array of elements of a certain size. By default the block is initialized to 0. The total number of memory allocated will be (number_of_elements * size).

malloc takes in only a single argument which is the memory required in bytes. malloc allocated bytes of memory and not blocks of memory like calloc.

2. malloc allocates memory blocks and returns a void pointer to the allocated space, or NULL if there is insufficient memory available.

calloc allocates an array in memory with elements initialized to 0 and returns a pointer to the allocated space. calloc calls malloc in order to use the C++ _set_new_mode function to set the new handler mode.


Leave a Reply