C語言中的malloc/free與C++中的new/delete的區別
有以下不同:
(1)new、delete 是操作符,可以過載,只能在C++中使用。
(2)malloc、free是函式,可以覆蓋,C、C++中都可以使用。
(3)new 可以呼叫物件的建構函式,對應的delete呼叫相應的解構函式。
(4)malloc僅僅分配記憶體,free僅僅回收記憶體,並不執行構造和解構函式
(5)new、delete返回的是某種資料型別指標,malloc、free返回的是void指標。
注意:malloc申請的記憶體空間要用free釋放,而new申請的記憶體空間要用delete釋放,不要混用。因為兩者實現的機理不同。