C中的 malloc 和C++中的 new 有什么区别

malloc 和 new 有以下不同:(1) new、delete 是操作符,可以重载,只能在 C++中使用。(2) malloc、free 是函数,可以覆盖,C、C++中都可以使用。(3) new 可以调用对象的构造函数,对应的 delete 调用相应的析构函数。(4) malloc 仅仅分配内存,free 仅仅回收内存,并不执行构造和析构函数(5) new、delete 返回的是某种数据类型指针,malloc、free 返回的是 void 指针。注意:malloc 申请的内存空间要用 free 释放,而 new 申请的内存空间要用 delete 释放,不要混用。因为两者实现的机理不同。

发表评论