1. 程式人生 > >關於記憶體分配時malloc()和calloc()的區別

關於記憶體分配時malloc()和calloc()的區別

動態分配記憶體空間,較為熟悉的是malloc(),但有時也會用calloc()。兩者有何區別呢?

先寫一下兩者的常規用法示例吧。
void *malloc(size_t size);

void *calloc(size_t count,size_t size);

可見兩者使用時引數不同。

malloc(0有一個引數,代表著要分配的記憶體大小

calloc()函式有兩個引數,分別為元素的數目和每個元素的大小,這兩個引數的乘積就是要分配的記憶體空間的大小。

使用時calloc()可以初始化所分配的記憶體空間,將每一位都初始化為0,而malloc()則可能還遺留著之前的分配方式。

大概就是這樣。