動態分配記憶體

2021-07-09 12:29:18 字數 540 閱讀 3175

動態分配記憶體:

動態分配記憶體也可以分配儲存區,這種方式可以在程式執行的時候臨時決定分配的儲存區大小

為了管理動態分配的記憶體,就需要使用一組標準函式

為了使用這些標準函式,需要包含stdlib.h標頭檔案

malloc 函式可以動態分配一組連續的位元組

這個函式需要乙個整數型別引數表示分配的位元組個數,它的返回值代表分配好的第乙個位元組的位址

如果分配失敗,則返回null

這個函式的返回值是無型別指標,必須首先轉換成有型別指標,然後才能使用

動態分配記憶體使用完成後必須還給計算機,這叫釋放記憶體

free函式可以用來釋放動態分配的記憶體

這個函式需要第乙個位元組的位址作為引數

某一次分配的所有記憶體必須一次都釋放掉

如果使用指標呢作為引數呼叫free函式,則函式結束後這個指標將成為野指標,必須恢復成空指標

呼叫函式可以使用被呼叫函式動態分配的記憶體

使用二級指標形式引數可以讓被呼叫函式把位址資料記錄在呼叫函式的指標儲存區里

其餘:calloc / realloc函式

記憶體動態分配

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

動態分配記憶體

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

動態分配記憶體

1 動態分配 new type 動態分配陣列 new type 釋放空間 delete expr 指標 釋放空間陣列 delete expr 2 new返回的是動態開的記憶體的首位址 如果沒有足夠的記憶體空間,其結果為乙個0值指標 int p new int 12 銷毀物件後,指標沒有定義,但是還指...