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

 我来答
艾斯大魔王
2012-05-07
知道答主
回答量:5
采纳率:0%
帮助的人:3.1万
展开全部
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指针。
beddy1
2012-05-07 · TA获得超过1989个赞
知道大有可为答主
回答量:2271
采纳率:0%
帮助的人:2206万
展开全部
C使用 malloc 申请,free 释放。
C++使用new申请,delete释放。

因为C++是面向对象的语言,new操作符不但会分配内存空间,还会调用对应类型的构造函数。同样的,delete的时候会调用构造函数。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
AIR_IT
2012-05-07 · TA获得超过183个赞
知道答主
回答量:277
采纳率:100%
帮助的人:162万
展开全部
c:malloc free
c++:new delete

比如成对使用,C++的方式添加了许多保护的机制。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式