1.分配地方不同,malloc是堆上面,new是自由存储区域 2.malloc/delete是函数,new/delete是操作符,可以重载 3.malloc 要指定大小,返回的是void*指针,开辟的是空空间,失败返回NULL new有类型检测,编译器会自动计算大小,还会初始化空间,返回的是类指针,失败抛出异常 (int* p = new(std::nothrow) int;)可以避免抛出异常,返回NULL 4.new底层是调用malloc来实现的 5. new[] /delete[],一个个分…