Perbedaan antara malloc dan calloc?

Apa perbedaan antara melakukan: ptr = (char **) malloc (MAXELEMS * sizeof(char *)); atau: ptr = (char **) calloc (MAXELEMS, sizeof(char*)); Kapan sebaiknya menggunakan calloc over malloc atau