21
2020
02

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 释放,不要混用。

因为两者实现的机理不同。

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。