What is the difference between doing:
ptr = (char **) malloc (MAXELEMS * sizeof(char *));
or:
ptr = (char **) calloc (MAXELEMS, sizeof(char*));
When is it a good idea to use calloc over malloc or vice versa?
Answer
calloc()
zero-initializes the buffer, while malloc()
leaves the memory uninitialized.
EDIT:
Zeroing out the memory may take a little time, so you probably want to use malloc()
if that performance is an issue. If initializing the memory is more important, use calloc()
. For example, calloc()
might save you a call to memset()
.
No comments:
Post a Comment