new delete和malloc free的區別

2021-08-17 04:39:19 字數 320 閱讀 1340

這是面試中常考的一道題。

面試中說出如下幾點即可:

(1)new delete 是c++運算子,malloc free是c的庫函式

(2)new乙個物件時,有嚴格的型別檢查,返回值是與物件匹配的指標,而malloc僅僅是申請一塊記憶體,返回值為void*,需要對其進行型別轉換才可使用。

(3)new和delete乙個物件時,會自動呼叫其建構函式和析構函式,而malloc和free只會釋放記憶體,不會呼叫其建構函式和析構函式。

(4)new乙個物件時,會自動判斷其型別大小,不用手動計算。而malloc一塊記憶體時,需要使用sizeof或手動輸入如其記憶體大小。

malloc free和new delete的區別

malloc free和new delete的區別malloc與free是c c語言的標準庫函式,new delete是c 的運算子。它們都可用於申請動態記憶體和釋放記憶體。對 於非內部資料型別的物件而言,光用maloc free無法滿足動態物件的要求。物件在建立的同時要自動執行建構函式,物件在消亡...

new,delete和malloc,free的區別

原型 extern void malloc unsigned int num bytes 說明 分配長度為num bytes位元組的記憶體塊。如果分配成功則返回指向被分配記憶體的指標,分配失敗返回空指標null。當記憶體不再使用時,應使用free 函式將記憶體塊釋放。說明 malloc 向系統申請分...

new delete和malloc free的區別

1,malloc與free是c c語言的標準庫函式,new delete是c 的運算子。它們都可用於申請動態記憶體和釋放記憶體 2,對於非內部資料型別的物件而言,光用maloc free無法滿足動態物件的要求。物件在建立的同時要自動執行建構函式,物件在消亡之前要自動執行析構函式。由於malloc f...