籠統地說,c++中的new就是申請一塊記憶體,但是對於不同型別的資料,要注意的點也不同。
new與基本資料型別,如int
new與陣列
new與物件
new的替換語義
new最好與智慧型指標配合使用,防止記憶體洩漏
//申請乙個int型資料a
int*a =
newint(2
);delete a;
//申請乙個大小為10的陣列
int*a = new int[10
];//需要注意,如果陣列中儲存的是指標,要先釋放指標在delete
delete[
] a;
//對於二維陣列要注意
int n =42;
double a[n][5
];// error
auto p1 = new double
[n][5]
;// okay
auto p2 = new double[5
][n]
;// error
//new會呼叫類的建構函式,而delete會呼叫類的析構函式
classa~
a()}
;int
main()
#include
classa~
a()}
;int
main()
#include
#include
classa~
a()}
;int
main()
c 中new與delete的過載
對於有一定程式設計基礎的人來說,new與delete一定會非常的熟悉,知道在使用的過程中 new 先分配memory 記憶體 再呼叫ctor 建構函式 而delete是先呼叫dtor 析構函式 再釋放memory。int p new int 10 int pa new int 10 new用來動態建...
C 中的new與delete總結
標準庫提供的global operator new,在全域性名字空間中定義 void operator new std size t size 丟擲異常的版本 void operator new std size t size,const std nothrow t nothrow value no...
C 中new與delete的用法
最近在學習c 的過程中,發現指標以及new和delete的使用遍布全書,可見其重要性。在學習了乙個階段之後,總結一下new和delete的用法,指標還沒有摸透,待日後總結。new和delete是c 中的兩個操作符,new用於給單個物件或者陣列,結構等分配記憶體,在記憶體使用完後,用delete進行釋...