將上面所述的10點差別整理成**:
特徵new/delete
malloc/free
分配記憶體的位置
自由儲存區
堆記憶體分配失敗返回值
完整型別指標
void*
記憶體分配失敗返回值
預設丟擲異常
返回null
分配記憶體的大小
由編譯器根據型別計算得出
必須顯式指定位元組數
處理陣列
有處理陣列的new版本new
需要使用者計算陣列的大小後進行記憶體分配
已分配記憶體的擴充
無法直觀地處理
使用realloc簡單完成
是否相互呼叫
可以,看具體的operator new/delete實現
不可呼叫new
分配記憶體時記憶體不足
客戶能夠指定處理函式或重新制定分配器
無法通過使用者**進行處理
函式過載
允許不允許
建構函式與析構函式
呼叫不呼叫
malloc函式 new和malloc的區別
1 申請的記憶體所在位置 new操作符從自由儲存區上為物件動態分配記憶體空間,而malloc函式從堆上動態分配記憶體。自由儲存區是c 基於new操作符的乙個抽象概念,凡是通過new操作符進行記憶體申請,該記憶體即為自由儲存區。而堆是作業系統中的術語,是作業系統所維護的一塊特殊記憶體,用於程式的記憶體...
new與malloc的區別
1,malloc與free是c c語言的標準庫函式,new delete是c 的運算子。它們都可用於申請動態記憶體和釋放記憶體。2,對於非內部資料型別的物件而言,光用maloc free無法滿足動態物件的要求。物件在建立的同時要自動執行建構函式,物件在消亡之前要自動執行析構函式。由於malloc f...
new與malloc的區別
malloc 與free 是c c 語言的標準庫函式,new delete 是c 的運算子。它們都可用於申請動態記憶體和釋放記憶體。對於非內部資料型別的物件而言,光用maloc free 無法滿足動態物件的要求。物件在建立的同時要自動執行建構函式,物件在消亡之前要自動執行析構函式。由於 malloc...