百度面試題——malloc/free和new/delete的異同

相同點:
   malloc/free和new/delete都用來進行內存分配和釋放。
不同點:
1、malloc/free是C++/C語言的標準庫函數,而new/delete是C++的運算符。
2、採用malloc申請內存以字節爲單位,且返回的內存類型爲void *,因此賦予具體的類型時需要進行強制轉換;而new則可根據需要的類型進行分配,並返回匹配類型的指針。
3、對於非內部數據類型的對象,採用maloc/free分配內存不會自動執行對象的構造和析構函數;而new/delete在分配和釋放內存的時候同時執行對象的構造和析構函數以初始化內存。
4、new/delete可被重載來實現符合特定需要的內存分配,用戶無需關心具體細節;而malloc/free只是庫函數,分配和釋放內存都需要自己維護。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章