一、在了解new和delete之前我們先回顧一下c語言中malloc和free的用法。
malloc:用來在堆上動態開闢記憶體
free:釋放記憶體
二、現在我們來簡單了解一下new和delete的用法:
new:用來動態開闢記憶體(也可做初始化)
delete:用來釋放空間和資源
三、c++中new與c中malloc的區別
1、new是乙個關鍵字,而malloc是乙個函式
2、new在自助訪問區開闢記憶體,malloc在堆上開闢
3、malloc只能用來開闢記憶體,而new既可以用來開闢記憶體也可以用來初始化
4、記憶體不足時,malloc返回null,new丟擲異常
5、malloc不能開闢常量記憶體塊,new可以。
四、下面用簡單的例子看看new的具體使用方法
1、動態開闢一維陣列
c語言: int *p=(int *)malloc(sizeof(int*)/10);
free(p);
c++: int *p2=new int[10];
delete p2;//釋放
int *p4=new int[10]();//0初始化
開闢常量記憶體塊
const int *p5=new const int(10);
delete p5;
開闢常量陣列
const int *p6=new const int[10]();
delete p6;
c語言動態開闢二維陣列
int **arr=(int**)malloc(sizeof(int*)*10);
for(int i=0;i<10;i++)
free(arr);
c++動態開闢二維陣列
int **p8=new int*10;
for(int i=0;i<10;i++)
for(int i=0;i<10;i++)
delete p8;
new與delete關鍵字
建立乙個基本型別一般都是int i 10 意思就是在堆區建立乙個整數型別 也可以使用這個關鍵字int i new int 10 和上乙個一樣,是在堆區建立乙個整數型別,並讓int指標記錄記錄下來這個int型別的位址 注意 這裡用的是指標儲存 這裡是 int i new int 10 cout 這個i...
new關鍵字 this關鍵字 base關鍵字
使用new,所做的三件事 1.類是引用物件,引用物件是在堆中開闢空間 在堆中開闢空間 2.在開闢的堆空間中建立物件 3.呼叫物件的構建函式 4.隱藏父類成員 子類的成員可以與隱藏從父類繼承的成員,類似於重寫。public new void sayhello this關鍵字的使用 1.代表當前類的物件...
關鍵字new和instanof(PHP)
物件是類的例項,可以使用new關鍵字建立物件。instancof關鍵字可以用來檢測某個物件是否屬於某個類,返回值為布林值。例如 xx instanceof user 注意 如果建立類中的建構函式包含引數,則在建立物件時也需要提供相應的引數。class user function destruct f...