C 中的new和delete操作符

2021-07-10 05:10:06 字數 712 閱讀 4476

在c語言中使用malloc()和free()等來進行動態記憶體管理,而在c++中使用操作符new和delete()來做相同的工作。

操作符new分配乙個空間,new[ ]分配乙個陣列,delete釋放由new分配的單一空間,delete[ ]釋放由new[ ]分配的陣列。

注意:deltet和new是操作符而不是庫函式

在c++中,通常new的使用方法如下:

new 型別名

new 型別名(初始化值)

new 型別名[表示式]

new的每種用法至少包含兩方面的含義:首先,動態儲存區會按照命名物件的資料型別分配大小為sizeof(型別名)的儲存空間來容納這個物件;其次,new表示式會返回這個物件的基位址,如果不能正常分配儲存空間,new會丟擲乙個異常或者返回null。

例如:

int * pi=new int;  //動態分配乙個存放int型別資料的記憶體空間,並將首位址賦值給p

float *pf=new float(3.5);  //分配乙個float型資料的記憶體空間,其值初始化為3.5

int *pt=new int [10];  //分配長度為10的連續整型資料儲存分配空間,首位址賦給pt

運算子delete用來刪除乙個由new建立的物件,並釋放所分配的儲存空間,使該儲存空間可以重複被利用。delete的用法如下;

delete 指標名

delete[ ] 指標名

C 中new和delete的用法

首先,new和delete運算子是用於動態分配和撤銷記憶體的運算子。一 new用法 1.開闢單變數位址空間 使用new運算子時必須已知資料型別,new運算子會向系統堆區申請足夠的儲存空間,如果申請成功,就返回該記憶體塊的首位址,如果申請不成功,則返回零值。new運算子返回的是乙個指向所分配型別變數 ...

C 中new和delete的用法

c 中new和delete的用法 對於計算機程式設計而言,變數和物件在記憶體中的分配都是編譯器在編譯程式時安排好的,這帶來了極大的不便,如陣列必須大開小用,指標必須指向乙個已經存在的變數或物件。對於不能確定需要占用多少記憶體的情況,動態記憶體分配解決了這個問題。new和delete運算子是用於動態分...

C 中new和delete的用法

new和delete運算子用於動態分配和撤銷記憶體的運算子 new用法 1.開闢單變數位址空間 1 new int 開闢乙個存放陣列的儲存空間,返回乙個指向該儲存空間的位址.int a new int 即為將乙個int型別的位址賦值給整型指標a.2 int a new int 5 作用同上,但是同時...