您的位置:首页 > 其它

malloc/free 和 new/delete 区别

2017-09-16 21:21 253 查看
malloc/free是标准库函数,new/delete是c++运算符
malloc/free只是动态分配内存/释放内存,new/delete除了分配内存还好调用构造函数和析构函数
malloc分配内存的基本单位是字节数,new分配内存的基本单位是对象的个数
malloc返回的是void*,new返回的是相应类型的指针。
malloc调用失败返回NULL,new调用失败抛出bac_alloc异常

malloc内存不足时返回NULL,new内存不足如果设置了new_handler set_new_handler(new_hander p) throw();函数,new会调用set_new_handler函数来处理。

malloc申请的内存,可以使用realloc扩容,但是new申请的没法通过相应操作符扩容。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: