As against malloc(), calloc() needs two arguments, the number of elements to be allocated and the size of each element. For example,
p = (int *) calloc (10, sizeof (int));
would allocate space for a 10- integer array. Additionally, calloc() would also set each of this element with a value 0.
Thus the above call to calloc() is equivalent to:
p = (int *) malloc (10 * sizeof (int));
memset (p, 0, 10 * sizeof( int ));