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 函式可以動態分配一組連續的位元組 這個函式需要乙個整數型別引數表示分配的位元組...