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不行。