malloc與calloc的區別學習

2021-07-06 08:59:24 字數 494 閱讀 3330

在學習lighthttped的**時,裡面的記憶體申請用的都是calloc而不是我們慣用的malloc,於是學習一下兩者的區別:

函式原型:

void *malloc( size_t size ); //分配的大小

void *calloc( size_t numelements, size_t sizeofelement ); // 

第乙個引數為元素的個數,第二個引數是每個元素的大小

不同點是:用malloc

分配儲存空間時,必須由我們計算需要的位元組數。如果想要分配5個

int型的空間,那就是說需要

5*sizeof(int)

的記憶體空間:最大的區別就是:用

malloc

只分配空間不初始化,也就是依然保留著這段記憶體裡的資料,而

calloc

則進行了初始化,

calloc

分配的空間全部初始化為

0,這樣就避免了可能的一些資料錯誤。

C語言 malloc 與 calloc的區別

用malloc和calloc分別實現同乙個功能。如下 include include void main check p1 return0 void check int p printf n include include void main check p1 return0 void check ...

malloc 和 calloc 的區別

void calloc size t num elements,size t element size void malloc size t size calloc和malloc都用於分配記憶體。1.malloc函式 malloc函式可以從堆上獲得指定位元組的記憶體空間,其函式宣告如下 void m...

malloc和calloc的區別

函式 malloc 和calloc 都可以用來動態分配記憶體空間 但兩者稍有區別。malloc 函式有乙個引數 即要分配的記憶體空間的大小 void malloc size t size calloc 函式有兩個引數 分別為元素的數目和每個元素的大小 這兩個引數的乘積就是要分配的記憶體空間的大小。v...