malloc函式和new關鍵字 C C

2021-10-04 09:03:35 字數 1082 閱讀 4540

malloc free

malloc是c語言中動態開闢記憶體時常用的函式,malloc只能單純地開闢記憶體,使用malloc後,還需要在使用完之後用free釋放掉其所開闢的空間。其函式原型如下:

void

*malloc

(size_t size);//void* 指向的是乙個半開半閉的區間,即[ ),因此不安全

c和c++中允許任意型別的指標轉成void* ,而若想將void* 轉成別的型別的指標需要強轉。

new delete

c++中動態開闢記憶體使用new關鍵字,而釋放記憶體使用delete關鍵字。new不僅能開闢記憶體,而且還能夠做初始化,例如:

int

* p=

newint(10

);//型別+初始化列表

delete p;

int* p=

newint[10

];//開闢陣列p[10]

delete

p;int* p=

newint[10

]();

//只能進行零初始化

const

int* p=

newconst

int(20)

;//開闢常量記憶體

//重定位new

int a;

char

* c=

new(

&a)char

('a');

//通過new後面的位址所對應的記憶體單元,拿到記憶體供外部使用

new和malloc的區別

1.new是關鍵字,malloc是乙個函式;

2.new不需要確定開闢的大小,malloc需要傳遞開闢的大小;

3.new返回值型別安全,malloc返回值型別不安全;

4.new還可以做初始化,malloc只能開闢記憶體;

5.new是以 new[ ]的形式開闢陣列,而malloc開闢陣列以開闢總大小的方式處理;

6.new開闢記憶體失敗,直接丟擲異常,而malloc開闢失敗返回null;

7.new開闢的記憶體位置是自由儲存區域,malloc在堆上開闢;

new關鍵字 this關鍵字 base關鍵字

使用new,所做的三件事 1.類是引用物件,引用物件是在堆中開闢空間 在堆中開闢空間 2.在開闢的堆空間中建立物件 3.呼叫物件的構建函式 4.隱藏父類成員 子類的成員可以與隱藏從父類繼承的成員,類似於重寫。public new void sayhello this關鍵字的使用 1.代表當前類的物件...

new 和 delete關鍵字

一 在了解new和delete之前我們先回顧一下c語言中malloc和free的用法。malloc 用來在堆上動態開闢記憶體 free 釋放記憶體 二 現在我們來簡單了解一下new和delete的用法 new 用來動態開闢記憶體 也可做初始化 delete 用來釋放空間和資源 三 c 中new與c中...

關鍵字new和instanof(PHP)

物件是類的例項,可以使用new關鍵字建立物件。instancof關鍵字可以用來檢測某個物件是否屬於某個類,返回值為布林值。例如 xx instanceof user 注意 如果建立類中的建構函式包含引數,則在建立物件時也需要提供相應的引數。class user function destruct f...