calloc
分配num
内存块,每个大小为size
:
void * calloc ( size_t num, size_t size );
为内存中的数组分配空间 为 num 个元素的数组分配一块内存,每个元素的大小为字节长,并将其所有位初始化为零。
相反,malloc
分配一块大小为 的内存size
:
void * malloc ( size_t size );
分配内存块 分配一块大小字节的内存,返回一个指向块开头的指针。
两者之间有什么区别(除了零初始化calloc
)?
calloc 的确切含义是num
内存块,因为实际上返回的内存区域也是连续的。
我相信必须有一些区别,否则为这些方法定义两个不同的接口没有多大意义?