Malloc或Calloc以及何时
可能重复:
malloc和calloc之间的区别
calloc与memoc和memset相同吗? 或者有什么区别
char * ptr;
ptr =(char *)calloc(1,100)
or
char * ptr;
ptr =(char *)malloc(100);
memset的(PTR,0100);
这就是calloc
由gcc定义的方式:
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
链接地址: http://www.djcxy.com/p/28455.html上一篇: Malloc or Calloc and when
下一篇: What's the difference between calloc & malloc followed by a memset?