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
学习才能进步 阅读(750)
评论(0) 编辑 收藏 引用