C和C++如何动态分配和释放内存,他们的区别是什么

如题所述

c是malloc和free,c++是new和delete,区别如下:
(1)new、delete 是操作符,可以重载,只能在C++中使用。
(2)malloc、free是函数,可以覆盖,C、C++中都可以使用。
(3)new 可以调用对象的构造函数,对应的delete调用相应的析构函数。
(4)malloc仅仅分配内存,free仅仅回收内存,并不执行构造和析构函数
(5)new、delete返回的是某种数据类型指针,malloc、free返回的是void指针。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-07
C使用 malloc 申请,free 释放。
C++使用new申请,delete释放。

因为C++是面向对象的语言,new操作符不但会分配内存空间,还会调用对应类型的构造函数。同样的,delete的时候会调用构造函数。本回答被网友采纳
第2个回答  2012-05-07
c:malloc free
c++:new delete

比如成对使用,C++的方式添加了许多保护的机制。
相似回答