可能重复:c malloc和calloc之间的区别
calloc与malloc相同吗?或者有什么不同
char * ptr; ptr =(char *)calloc(1,100)
or
char * ptr; ptr =(char *)malloc(100); memset的(PTR,0100);
这是 calloc 由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); }
结果,它是一样的 .
两者都分配内存然后将其设置为0
2 回答
这是
calloc
由gcc定义的方式:http://gcc.gnu.org/viewcvs/trunk/libiberty/calloc.c?view=markup
同
结果,它是一样的 .
两者都分配内存然后将其设置为0