免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2225 | 回复: 9
打印 上一主题 下一主题

malloc 问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-12-17 09:32 |只看该作者 |倒序浏览
如果用malloc申请内存,而用delete来释放内存,会出现什么问题

论坛徽章:
0
2 [报告]
发表于 2003-12-17 09:44 |只看该作者

malloc 问题

malloc和free是在c下的,new和delete是c++下的!

论坛徽章:
0
3 [报告]
发表于 2003-12-17 09:46 |只看该作者

malloc 问题

它两个是成对出现的!如果这样用如果在c下就有语法错误,如果在c++下就是释放不了内存贝!

论坛徽章:
0
4 [报告]
发表于 2003-12-17 10:21 |只看该作者

malloc 问题

不懂不要在这里瞎说,你试过么
weizzil_chinaun 该用户已被删除
5 [报告]
发表于 2003-12-17 10:26 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
6 [报告]
发表于 2003-12-17 10:48 |只看该作者

malloc 问题

[quote]原帖由 "haiyong_wu"]不懂不要在这里瞎说,你试过么[/quote 发表:
如果连malloc和free,new和delete需要成对出现都不知道的话,那你还是仔细学习一下c/c++的语法了。这种问题在这里讨论时没有任何意义的!

论坛徽章:
0
7 [报告]
发表于 2003-12-17 10:49 |只看该作者

malloc 问题

Q:new 和 malloc有什么不同?
A:new 是C++中的关健字,用来分配内存的一个标准函数。如果没有必要,请不要在C++中使用malloc。因为malloc是C中的语法,它不是为面向对象的C++而设计的。

Q:我可以同时使用free 和 delete吗?
A:你应该注意的是,它们各自所匹配的操作不同。free只用在用malloc分配的内存操作中,而delete只用在用new分配的内存操作中。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
8 [报告]
发表于 2003-12-17 12:14 |只看该作者

malloc 问题

[quote]原帖由 "haiyong_wu"]如果用malloc申请内存,而用delete来释放内存,会出现什么问题[/quote 发表:

它的结果是不可预测的!
也就是没有定义!

论坛徽章:
0
9 [报告]
发表于 2003-12-17 12:20 |只看该作者

malloc 问题

对一个用new获取来的指针调用free,或者对一个用malloc获取来的指针调用delete,其后果是不可预测的。大家都知道“不可预测”的意思:它可能在开发阶段工作良好,在测试阶段工作良好,但也可能会最后在你最重要的客户的脸上爆炸。《effective c++》上说的

论坛徽章:
0
10 [报告]
发表于 2003-12-17 13:13 |只看该作者

malloc 问题

delete()相当于先执行类的destructor
然后再free()。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP