內存動態分配與釋放

內存的動態分配需要使用函數malloc,函數free和運算符sizeof來實現。函數malloc的原型是:

Void* malloc(unsigned int size);

函數malloc的作用是在內存中分配一個長度爲size的連續存儲空間。函數的返回值是一個指向分配空間的起始位置的指針。如果分配空間失敗,則返回NULL。如果要爲類型爲struct node的結構體分配一塊內存空間。可以使用以下語句來實現:

p=(struct node*)malloc(sizeof(struct node));

其中 ,sizeof(struct node)是計算結構體類型需要佔用的字節數,struct node*是把函數的返回值類型void*轉換爲指向結構體指針類型。如果分配成功,把該內存區域的起始地址返回給指針p。 

函數free的原型是:

void free(void *p);

函數free的作用是釋放p指向的內存空間。如果要釋放剛纔申請的空間,可以使用以下語句來實現:

free(p);

注意:函數malloc和free一般成對使用,在使用完內存空間時,要記得用free將內存空間釋放。使用函數malloc時,最好要測試是否分配成功。已經釋放掉的內存不可以重新使用。

發佈了94 篇原創文章 · 獲贊 29 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章