共同點:都用來申請和釋放動態內存, 對於內置類型,兩者的作用是相同的
差異:
1. new/delete是C++ 的關鍵字(操作符),malloc/free屬於C/C++的標準庫函數,調用時需要包含頭文件;
2. new 自定義類型對象時,不僅分配內存,還調用類對象的構造函數進行成員初始化;
delete 自定義類型對象時,不僅釋放內存,還調用類對象的析構函數清理內存;
而malloc/free只負責申請和釋放內存。
malloc/free的存在理由:
C++程序中常常調用C函數,C程序只能用malloc/free管理動態內存;