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