1.相同点 两者的功能都是用于申请/释放内存。 2.不同点 1.new/delete是C++的运算符(可重载),malloc/free是C语言的标准库函数。 2.new分配完内存后和自动执行构造函数,delete在释放完内存年后会执行析构函数。而malloc和free不行。 3.new返回申请类型的指针,而malloc 返回void* 需要强制转换。 4.new申请失败抛出bad_alloc类型的异常,而malloc申请失败返回 nullptr。