記憶體動態分配與釋放

2021-07-04 00:13:04 字數 614 閱讀 8372

記憶體的動態分配需要使用函式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 ...