易考筆記——new/delete和malloc/free區別

1.malloc/free是C/C++語言的標準庫函數,在C語言中需要頭文件<stdlib.h>的支持,而new/delete是C++的運算符。

2.new能夠自動計算需要分配的內存空間,而malloc需要手工計算字節數。

3.new與delete只接待具體類型的指針,malloc與free返回viod類型的指針。

4.new是類型安全的,而malloc不是。如:int * p=new float[2];編譯器會報錯,即帶有類型檢測;

5.new一般是有兩步構成,分別是new操作和構造。new操作對應於malloc,但new操作可以重載,可以自己定義內存分配策略,不做內存分配,甚至分配到非內存設備上,而malloc不行。

6.new將調用構造函數,而malloc不行;deleted將調用析構函數,而free不行。


發佈了30 篇原創文章 · 獲贊 5 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章