malloc/free 和 new/delete 区别

来源:互联网 发布:关系型数据库基本特征 编辑:程序博客网 时间:2024/06/07 12:09
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申请的没法通过相应操作符扩容。
原创粉丝点击