new與malloc的對比總結

2021-10-05 02:06:33 字數 477 閱讀 5047

c++中的new和c中的malloc都是用來申請記憶體空間的,那麼區別是:

new在動態儲存區分配記憶體,malloc在堆上分配記憶體
new返回物件型別的指標,型別與物件嚴格匹配

malloc返回 void *,通過強制型別轉換成我們需要的物件型別

new分配失敗時,丟擲異常,不返回null

malloc分配失敗時,返回null

new動態分配不需要指定大小,編譯器自行處理

malloc需要顯示宣告大小,常與sizeof搭配使用

new / delete涉及了建構函式和析構函式的使用

malloc / free 沒有此操作

另外,new 是基於malloc進行工作的,即呼叫了malloc

malloc和new對比,Linux程序的五個段

1 如何在不知道陣列個數的情況下動態輸入陣列?答 c語言裡這樣是不行的,只能使用動態分配記憶體。c語言 int a a int malloc sizeof int n c int a newint n 2 c語言的malloc和c 的new有什麼區別?答 1 申請記憶體所在位置 new操作符從自由儲...

new和malloc的總結

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

new與malloc的區別

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