calloc
分配存储器num
块,每个块大小size
的:由malloc和calloc分配的内存块布局差异?
void * calloc (size_t num, size_t size);
在存储器 分配空间数组分配存储块为NUM元件的阵列,其中每一个的大小的字节长,并将其所有位初始化为零。
相反,malloc
分配的大小size
的存储器的一个块:
void * malloc (size_t size);
分配内存块 分配一个的存储器大小字节的块,返回一个指针,指向块的开始。
有两个(除非是由calloc
零初始化)有什么区别?
什么释放calloc表示正好通过的存储器num
块作为在实践中,返回的内存区域是连续为好。
我相信,必须有一定的差异,否则就没有太大的意义来定义两个不同的接口,这些方法呢?
是的,这就是为什么我甚至没有尝试认为内存不连续。那么这是否意味着术语,n块记忆是错误的? –
@AvantikaSk是的,这是误导。 – nos
实际上,calloc分配一个适合存储大小为n的元素数组的内存块。在大多数实现中,calloc调用malloc,然后清零内存。我认为他们有两个不同的原型偶然,他们是不同的,因为calloc归零内存。 –