1 new自動計算需要分配的空間,而malloc需要手工計算字節數
2 new是類型安全的,而malloc不是,比如:
int* p = new float[2]; // 編譯時指出錯誤
int* p = malloc(2*sizeof(float)); // 編譯時無法指出錯誤
new operator 由兩步構成,分別是 operator new 和 construct
3 operator new對應于malloc,但operator new可以重載,可以自定義內存分配策略,甚至不做內存分配,甚至分配到非內存設備上。而malloc無能為力
4 new將調用constructor,而malloc不能;delete將調用destructor,而free不能。
5 malloc/free要庫文件支持,new/delete則不要。
posted on 2007-04-06 15:28
學習才能進步 閱讀(765)
評論(0) 編輯 收藏 引用