voidmalloc函式在堆中分配引數_size指定大小的記憶體,單位:位元組,函式返回void *指標。* malloc(
size_t
_size);
void
* calloc(
size_t
_count,
size_t
_size);
calloc函式分配記憶體的同時把記憶體清空。第乙個引數是所需記憶體單元數量,第二個引數是每個記憶體單元的大小(單位:字
節),calloc自動將分配的記憶體置0。
void第乙個引數 p為之前用malloc或者calloc分配的記憶體位址,_newsize為重新分配記憶體的大小,單位:位元組。成功返回新分配* realloc(
void
*p,
size_t
_newsize);
的堆記憶體位址,失敗返回null。
realloc不會自動清理增加的記憶體,需要手動清理,如果指定的位址後面有連續的空間,那麼就會在已有位址基礎上增加內
存,如果指定的位址後面沒有空間,那麼realloc會重新分配新的連續記憶體,把舊記憶體的值拷貝到新記憶體,同時釋放舊記憶體。
如果引數p等於null,那麼realloc與malloc功能一致。
void free(void *p);free負責在堆中釋放malloc分配的記憶體。引數p為malloc返回的堆中的記憶體位址。
注:再釋放完後,將指標置空。
參考:黑馬程式設計師
堆記憶體的分配和釋放
示例 int i 10 int p int malloc sizeof int 在堆中分配乙個整數大小的記憶體.printf p,d n i,i printf p,d n p,p free p 必須要手動釋放堆記憶體.特殊示例 int main void test char p 列印結果 null ...
記憶體分配和釋放
自從學習了c語言,老師就教導我們說 對於動態記憶體的申請和釋放,一定要遵守 誰申請,誰釋放 的原則。在此原則的指導下,不僅是我 不僅是你,就連特級大師都設計了這樣怪怪的函式 函式說明 getwindowtext hwnd,lptstr,int 取得視窗標題。需要在引數中給出儲存標題所使用的記憶體指標...
記憶體分配和釋放
三 記憶體分配和釋放 自從學習了c語言,老師就教導我們說 對於動態記憶體的申請和釋放,一定要遵守 誰申請,誰釋放 的原則。在此原則的指導下,不僅是我 不僅是你,就連特級大師都設計了這樣怪怪的函式 函式說明 getwindowtext hwnd,lptstr,int 取得視窗標題。需要在引數中給出儲存...