內存的動態分配需要使用函數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時,最好要測試是否分配成功。已經釋放掉的內存不可以重新使用。