Malloc或Calloc以及何时使用
Malloc或Calloc以及何时使用
这个问题已经有答案了:
可能是重复的问题:
calloc和使用memset的malloc一样吗?还是有什么区别?
char *ptr;
ptr=(char *)calloc(1,100)
or
char *ptr;
ptr=(char *) malloc(100);
memset(ptr,0,100);
admin 更改状态以发布 2023年5月24日
这是gcc定义calloc
的方式:
PTR calloc (size_t nelem, size_t elsize) { register PTR ptr; if (nelem == 0 || elsize == 0) nelem = elsize = 1; ptr = malloc (nelem * elsize); if (ptr) bzero (ptr, nelem * elsize); return ptr; }
http://gcc.gnu.org/viewcvs/trunk/libiberty/calloc.c?view=markup
其中
void bzero (void *to, size_t count) { memset (to, 0, count); }