記憶體的動態分配需要使用函式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時,最好要測試是否分配成功。已經釋放掉的記憶體不可以重新使用。
記憶體動態分配與釋放
1 c語言的函式malloc和free 1 函式malloc和free在標頭檔案中的原型及引數 void malloc size t size 動態配置記憶體,大小有size決定,返回值成功時為任意型別指標,失敗時為null。void free void ptr 釋放動態申請的記憶體空間,呼叫fre...
記憶體動態分配與釋放
1 c語言的函式malloc和free 1 函式malloc和free在標頭檔案中的原型及引數 void malloc size t size 動態配置記憶體,大小有size決定,返回值成功時為任意型別指標,失敗時為null。void free void ptr 釋放動態申請的記憶體空間,呼叫fre...
C語言記憶體動態分配與釋放
c語言的函式malloc和free 1 函式malloc和free在標頭檔案中的原型及引數 void malloc size t size 動態配置記憶體,大小有size決定,返回值成功時為任意型別指標,失敗時為null。void free void ptr 釋放動態申請的記憶體空間,呼叫free ...