免费注册 查看新帖 |

Chinaunix

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

c++ ::operator new 与 malloc 关系 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-21 17:02 |只看该作者 |倒序浏览
1 :  :perator new 是对 malloc 的一层浅浅封装,
2 :  :perator new  与 malloc 处于相同层次

个人认为是第一种情况,
不太确定,忘达人指点!

论坛徽章:
0
2 [报告]
发表于 2009-12-21 17:06 |只看该作者
貌似是吧。。。

论坛徽章:
0
3 [报告]
发表于 2009-12-21 17:11 |只看该作者
malloc仅仅是分配一块内存,,,new肯定做得比malloc多,

我觉得讨论C++语言的细节完全没有必要,它C++的一个性就是封装,你还研究它干啥?有开放的你不研究!

以前台湾那个侯捷,还翻译了一本外国《深入探索C++对象模型》,我看他和那个外国的作者,纯粹是吃饱了撑的!

[ 本帖最后由 unistd 于 2009-12-21 17:15 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2009-12-21 17:17 |只看该作者
unistd  同学真是可爱,呵呵

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
5 [报告]
发表于 2009-12-21 17:23 |只看该作者

回复 #1 windyrobin 的帖子

它们之间的关系,标准没有保证。 和具体实现有关。
有什么特殊情况, 需要了解它们之间的关系么?


msvcrt的实现, 还不好说……  通常情况下 operator new 是调用malloc的。
op new - > malloc -> _malloc_dbg什么的 -> _heap_dbg什么的


但是如果翻译单元有如下定义 :
#define 一个宏, 叫啥忘记了
#include <crtdbg.h>

operator new 就和malloc处于相同层次了。
op new -> _malloc_dbg -> _heap_dbg
malloc -> _malloc_dbg ->  _heap_dbg
这是msvcrt的一个失败的设计 …… 目的是为了检测内存泄露的位置, 可惜达不到这个目的。

glibc不清楚……

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
6 [报告]
发表于 2009-12-21 17:27 |只看该作者

回复 #3 unistd 的帖子

operator new除了一个版本之外, 其他的也仅仅是分配一块内存。 不懂就别瞎嚷嚷

仅仅是在你看来, 研究和C无关的就是吃饱了撑的。 可惜也没看出你C有多大造化

论坛徽章:
0
7 [报告]
发表于 2009-12-21 17:30 |只看该作者
原帖由 OwnWaterloo 于 2009-12-21 17:27 发表
operator new除了一个版本之外, 其他的也仅仅是分配一块内存。 不懂就别瞎嚷嚷

仅仅是在你看来, 研究和C无关的就是吃饱了撑的。 可惜也没看出你C有多大造化



非常感谢OwnWaterlpp,呵呵
不过 OwnWaterloo 老弟口下留情 ,
俺可不希望俺发的帖子变成打架贴,呵呵。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
8 [报告]
发表于 2009-12-21 17:32 |只看该作者

回复 #7 windyrobin 的帖子

听你的 ……

有什么特殊的case, 需要了解这么细致么?

论坛徽章:
0
9 [报告]
发表于 2009-12-21 17:36 |只看该作者
原帖由 OwnWaterloo 于 2009-12-21 17:32 发表
听你的 ……

有什么特殊的case, 需要了解这么细致么?


没啥case ,就是有点困惑,念头不通达,呵呵

侯捷关于STL 学习的3重境界: 会用 - 明理 - 能扩展 ,
个人感觉这个说法还是有点意思滴!

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
10 [报告]
发表于 2009-12-21 17:41 |只看该作者

回复 #9 windyrobin 的帖子

我觉得吧……   主要就是学习一下ducking type,或者说concepts的思想。
只要理解了这个思想, 会用-明理-能扩展,其实是一回事。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP