malloc/free是C++/C的标准库函数,new/delete是C++的运算符
对于非内部数据类型的对象而言,对象创建的同时会自动执行构造函数,在消亡之前要自动调用析构函数。但由于malloc/free是库函数,不在编译器的控制范围内,不能够执行构造函数和析构函数。
此时,C++需要一个能完成动态内存分配和初始化工作的运算符new,以及一个能完成清理和释放内存工作的运算符delete。
malloc/free是C++/C的标准库函数,new/delete是C++的运算符
对于非内部数据类型的对象而言,对象创建的同时会自动执行构造函数,在消亡之前要自动调用析构函数。但由于malloc/free是库函数,不在编译器的控制范围内,不能够执行构造函数和析构函数。
此时,C++需要一个能完成动态内存分配和初始化工作的运算符new,以及一个能完成清理和释放内存工作的运算符delete。