c new 與new 的區別

2021-06-19 11:37:58 字數 692 閱讀 7129

new和delete運算子用於動態分配和撤銷記憶體的運算子

new用法:

1. 開闢單變數位址空間

1)new int;  //開闢乙個存放陣列的儲存空間,返回乙個指向該儲存空間的位址.int *a = new int 即為將乙個int型別的位址賦值給整型指標a. 

2)int *a = new int(5) 作用同上,但是同時將整數賦值為5

2. 開闢陣列空間

一維: int *a = new int[100];開闢乙個大小為100的整型陣列空間

二維: int **a = new int*[5]

for()

三維及其以上:依此類推.

一般用法: new 型別 [初值]

delete用法:

1. int *a = new int;

delete a; 

//釋放單個int的空間

2.int *a = new int[5];

delete a; //釋放int陣列空間

要訪問new所開闢的結構體空間,無法直接通過變數名進行,只能通過賦值的指標進行訪問.

用new和delete可以動態開闢,撤銷位址空間.在程式設計序時,若用完乙個變數(一般是暫時儲存的陣列),下次需要再用,但卻又想省去重新初始化的功夫,可以在每次開始使用時開闢乙個空間,在用完後撤銷它.

C new到底new什麼

vs2010 debug版本 1 9 int obj new int 6 2 00f714ce push 4 壓棧 3 00f714d0 call operator new 0f711eah 呼叫new函式返回分配的位址addr 0f711eah是指令 jmp operator new 的位址 4 ...

c new與malloc的區別

區別 1.malloc是c 語言的標準庫函式 而new是c 語言中的操作符。2.new返回指定型別的指標,並且可以自動計算所需空間的大小 而malloc必須要由使用者自己計算所需空間大小,並在返回後強行轉換為實際型別的指標。3.malloc只管記憶體分配,不能對所得的記憶體進行初始化,其所獲記憶體空...

new與override的區別

override是在原來的基礎上覆蓋,現在就只有子類的該方法,而父類的該方法已經不存在 new是子類生成了乙個與父類同名的新方法,此時父類的這個方法還是存在的 using system using system.collections.generic using system.linq using ...