The use of malloc and calloc is dynamic memory allocation. malloc allocates memory in bytes whereas calloc allocates memory in blocks. calloc initializes the allocated memory to zero. Both differs in number of arguments also. malloc takes only one argument and allocates the memory in bytes as given in the argument. calloc takes two arguments, number of variables to be allocated and size of each variable. Another difference is how the two functions deal with memory alignment.