內存動態分配與釋放
阿新 • • 發佈:2017-06-02
ont 分配 rgb sig 地址 占用 註意 是把 post
內存的動態分配須要使用函數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時。最好要測試是否分配成功。
已經釋放掉的內存不能夠又一次使用。
內存動態分配與釋放