这是面试中常考的一道题。
面试中说出如下几点即可:
(1)new delete 是c++运算符,malloc free是c的库函数
(2)new一个对象时,有严格的类型检查,返回值是与对象匹配的指针,而malloc仅仅是申请一块内存,返回值为void*,需要对其进行类型转换才可使用。
(3)new和delete一个对象时,会自动调用其构造函数和析构函数,而malloc和free只会释放内存,不会调用其构造函数和析构函数。
(4)new一个对象时,会自动判断其类型大小,不用手动计算。而malloc一块内存时,需要使用sizeof或手动输入如其内存大小。