new 和 malloc 区别
1、申请内存的位置 new从自由存储区为对象分配内存,malloc从堆上分配。
2、返回类型安全性 new操作符分配成功,返回对象类型指针,不用类型转换; malloc分配成功,返回void*,需要强制类型转换成对象类型指针; 3、分配失败 new失败,抛出异常,不返回NULL; malloc失败,返回NULL; 4、指定内存大小 new不需要; mallco需要显示指定(sizeof(type)*n); 5、调用构造函数、析构函数 new:调用operator new分配足够大的内存,运行构造函数,返回对象指针 delete:调用对象的析构函数,调用operator delete释放空间 而malloc不会 ? 总结:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |