C 中的new語義與delete

2021-09-24 06:21:05 字數 885 閱讀 2051

籠統地說,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進行釋...