new 和 delete關鍵字

2021-09-02 15:29:24 字數 985 閱讀 1937

一、在了解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...