I know two differences.
1) they differ in the no. of arguments they take
2) malloc returns uninitialized memory whereas calloc initializes it to zero.
I have 3 questions to ask.
1)Are there any other differences?
2) C compilers can re-implement malloc so that they also initialize the memory allocated, thus obliterating the need for calloc. Why C compilers or C STANDARD committees (ISO/ANSI) have not done this?
3)Whatever calloc does can be done in malloc itself. Is there ANY ONE SITUATION which demands only the use of calloc and NOT malloc?