1. 程式人生 > >內存動態分配與釋放

內存動態分配與釋放

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時。最好要測試是否分配成功。

已經釋放掉的內存不能夠又一次使用。

內存動態分配與釋放