malloc和new有什麼區別

2021-06-21 11:40:00 字數 483 閱讀 9330

malloc和new有以下不同:

注意:malloc申請的記憶體空間要用free釋放,而new申請的記憶體空間要用delete釋放,不要混用。因為兩者實現的機理不同。

有了malloc/free為什麼還要new/delete?

malloc/free是c++/c語言的標準庫函式,new/delete是c++的運算子。它們都可用於申請動態記憶體和釋放記憶體

對於非內部資料型別的物件而言,光用malloc/free無法滿足動態物件的要求。物件在建立的同時要自動執行建構函式,物件在消亡之前要自動執行析構 函式。由於malloc/free是庫函式而不是運算子,不在編譯器控制許可權之內,不能夠把執行建構函式和析構函式的任務強加於malloc/free。 對於內部資料型別的「物件」沒有構造與析構過程,對它們而言,malloc/free和new/delete是等價的。為什麼c++不把malloc /free淘汰出局呢?這是因為c++程式經常要呼叫c函式,而c程式只能用malloc/free管理動態記憶體。

malloc和new有什麼區別

malloc和new有以下不同 注意 malloc申請的記憶體空間要用free釋放,而new申請的記憶體空間要用delete釋放,不要混用。因為兩者實現的機理不同。有了malloc free為什麼還要new delete?malloc free是c c語言的標準庫函式,new delete是c 的運...

new和malloc有何區別?

寫這個問題的原因是面試時被問到new和malloc申請的記憶體有何區別,當時沒有回答出來,回來後查閱了很多的部落格,發現自己不會的真的特別多,所以現在自己寫了乙個回答!首先我們大概知道c和c 申請動態記憶體的方式如下 c 使用malloc calloc realloc函式申請動態記憶體,使用free...

有什麼區別

01 02.程式的版權和版本宣告部分 05.檔名稱 test.cpp 06.作 者 王雅萍 07.完成日期 2014年 4 月 15 日 08.版 本 號 v1.0 09.對任務及求解方法的描述部分 10.輸入描述 無 11.問題描述 12.程式輸出 13.問題分析 略 14.演算法設計 略 inc...