實現動態分配記憶體

2021-10-03 08:38:07 字數 875 閱讀 1047

有些時候我們需要在記憶體主動申請記憶體來儲存我們的資料,實現動態分配記憶體的效果,標頭檔案 #include 宣告了個關於記憶體動態分配的函式 。

malloc( )函式

函式原型 void * malloc(usigned int size)

• 作用——在記憶體的動態儲存區(堆區)中分配乙個長度為size的連續空間。

• 形參size的型別為無符號整型,函式返回值是所分配區域的第乙個位元組的位址,

即此函式是乙個指標型函式,返回的指標指向該分配域的開頭位置。

• malloc(100); 開闢100位元組的臨時空間,返回值為其第乙個位元組的位址

2.free( )函式

函式原型:void free(void *p)

• 作用——釋放變數p所指向的動態空間,使這部分空間能重新被其他變數使用。

• p是最近一次呼叫calloc或malloc函式時的函式返回值

• free函式無返回值

• free(p); // 釋放p 所指向的已分配的動態空間

為了更深入的理解malloc()函式和free()函式,我們來講乙個動態記憶體分配案例:

動態建立陣列,輸入5個學生的成 績,另外乙個函式檢測成績低於60 分的,輸出不合格的成績。

例項 9-10

#include

#include

int main()

check(p);

free(p);

getchar();

return 0;

}void check(int *p) }}

執行結果 如圖9-8所示

9-8 例項9-10 執行結果

記憶體動態分配

陣列的元素儲存於記憶體中連續的位置上。當乙個陣列被宣告時,它所需要的內存在編譯時就被分配。但是,你也可以使用動態記憶體分配在執行時為它分配記憶體。malloc所分配的是一塊連續的記憶體。例如,如果請求它分配100個位元組的記憶體,那麼它實際分配的記憶體就是100個連續的位元組,並不會分開位於兩塊或多...

動態分配記憶體

動態記憶體分配即分配記憶體大小在執行時才確定,一般在堆中分配。c語言動態記憶體分配相關的函式。include void malloc size t size malloc的使用比較直接,乙個成功的malloc呼叫返回分配的size大小的記憶體的指標。失敗時返回null並將錯誤 置為enomem。教材...

動態分配記憶體

動態分配記憶體 動態分配記憶體也可以分配儲存區,這種方式可以在程式執行的時候臨時決定分配的儲存區大小 為了管理動態分配的記憶體,就需要使用一組標準函式 為了使用這些標準函式,需要包含stdlib.h標頭檔案 malloc 函式可以動態分配一組連續的位元組 這個函式需要乙個整數型別引數表示分配的位元組...