c 高階二(動態分配記憶體)

2021-10-03 05:23:00 字數 808 閱讀 3567

1,new方法

建立:new 釋放delete

刪除陣列為delete a

注意釋放後需要令指標為null,防止產生野指標

建立普通變數:

int*a=

newint

;建立陣列變數:

int*a=

newint[10

]刪除普通變數記憶體:

delete a;

刪除陣列變數:

delete

a;防止a變為野指標:

a=null

;

2,malloc方法

#include

建立:malloc 刪除 free()

型別 變數名=(型別)malloc(長度*sizeof(型別))

#include

#include

#include

using

namespace std;

intmain()

3,二者區別

1,使用new操作符申請記憶體分配時無須指定記憶體塊的大小,編譯器會根據型別資訊自行計算。而malloc則需要顯式地指出所需記憶體的尺寸。

2,new 返回的是物件指標 而malloc返回的是void*

3,malloc記憶體不夠用時可以使用realloc進行擴充,而new不可以

4,new delete可以呼叫類的建構函式和析構函式,而malloc和free只是單純的分配記憶體塊

記憶體動態分配

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

動態分配記憶體

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

動態分配記憶體

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