malloc、operator new、new的关系
operator new调用malloc+开辟内存失败抛std::bad_alloc异常机制,不需要检查是否失败;
new调用operator new+类的构造函数。
operator delete调用_free_dbg()函数,其实就是free函数的调试版本,用于释放由 operator new
分配的内存;
delete会先调用对象的析构函数(如果对象有析构函数),然后调用 operator delete
来释放内存。
operator new调用malloc+开辟内存失败抛std::bad_alloc异常机制,不需要检查是否失败;
new调用operator new+类的构造函数。
operator delete调用_free_dbg()函数,其实就是free函数的调试版本,用于释放由 operator new
分配的内存;
delete会先调用对象的析构函数(如果对象有析构函数),然后调用 operator delete
来释放内存。