不同點在於 calloc 會將分配的記憶體初始化為0如果分配的記憶體比原來要大,這個時候有兩種情況出現
1、原有空間後序有足夠大的空閒空間,那麼直接在原有空間後繼續開闢記憶體,返回原有空間的首位址
2、原有空間後序沒有足夠大空閒空間,重新會分配乙個足夠大的空間,並且將原有空間的內容拷貝到新空間下,釋放原有空間,將新空間的首位址返回
#include
#include
intmain
(int argc,
const
char
*ar**)
#define _crt_secure_no_warnings
#include
#include
#include
//calloc
void
test01()
if(p!=
null)}
//realloc 重新在堆區分配記憶體
realloc函 realloc函式用法
realloc 用過很多次了。無非就是將已經存在的一塊記憶體擴大。char p malloc 1024 char q realloc p,2048 現在的問題是我們應該如何處理指標 p。剛開始按照我最直觀的理解,如果就是直接將 p null 到最後只需要釋放 q的空間就可以了。因為最近在做個封裝。結...
realloc函 realloc函式使用規則
realloc函式使用規則如下 1 realloc失敗的時候,返回null 2 realloc失敗的時候,原來的記憶體不改變,不會釋放也不會移動 3 假如原來的記憶體後面還有足夠多剩餘記憶體的話,realloc的記憶體 原來的記憶體 剩餘記憶體,realloc還是返回原來記憶體的位址 假如原來的記憶...
reprint malloc與calloc的區別
某自由人的部落格 malloc與calloc的區別 函式malloc 和calloc 都可以用來動態分配記憶體空間,但兩者稍有區別。malloc 函式有乙個引數,即要分配的記憶體空間的大小 void malloc size t size calloc 函式有兩個引數,分別為元素的數目和每個元素的大小...