春风化雪的专栏

一起讨论C++/C高质量程序设计

用户操作
[即时聊天] [发私信] [加为好友]
春分化雪ID:northwest_wolf
18341次访问,排名6864(-2),好友16人,关注者41人。
northwest_wolf的文章
原创 14 篇
翻译 0 篇
转载 0 篇
评论 87 篇
最近评论
sujinzhao407:刚在Linux下用KDevelop并不存在这个问题,也就是说动态申请到内存首地址的前的第16个字节处保存的并不是申请到的空间大小,输出结果为0,而在VC下才会出现这个情况。另外qgs551提到的:
double *pmemory=(double*)(unsigned int*)((char*)a-16);

*pmemory =6.0;
应该将doub……
sujinzhao407:刚在Linux下用KDevelop并不存在这个问题,也就是说动态申请到内存首地址的前的第16个字节处保存的并不是申请到的空间大小,输出结果为0,而在VC下才会出现这个情况。另外qgs551提到的:
double *pmemory=(double*)(unsigned int*)((char*)a-16);

*pmemory =6.0;
应该将doub……
sujinzhao407:但是不明白为什么动态申请的内存大小会保存在首地址前的16个字节处,是不是和VC的编译器有关啊,期待有人能用其它编译器测试下!
sujinzhao407:经过调试,在动态内存分配后,*((unsigned int*)((char*)a - 16))的值确实已经是4344了,但如果将*pmemory = 4344就OK了,所以我觉得如果赋成6.0的话,因为申请的空间大小是4344,在delete []a时释放的地址空间大小确实6所以就会报错了,赋成4344就没有问题是因为申请分配的空间和释放时的空间大小一致!
csnffdn:不错的书,准备买一本
文章分类
收藏
    相册
    技术图片
    我的闺女
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes
    2008年04月03日

    原创 VC动态内存大小信息的存放位置

    通过测试,发现VC把每次动态分配的内存的大小信息保存在了这块内存前面16字节偏移处。阅读全文>

    发表于 @ 2008年04月03日 11:44:00|评论(loading...)|编辑

    2008年01月02日

    原创 这是一个校友也是一个本书读者给我的来信,很真诚!

    这是一个校友也是一个本书读者给我的来信,很真诚!以前从来没有读者给我写过这么长的信来谈读后感,这是第一个。欢迎大家自由讨论!阅读全文>

    发表于 @ 2008年01月02日 11:00:00|评论(loading...)|编辑

    2007年12月29日

    原创 关于示例15-19的修订

    dynamic_cast()只能用来转换指针和引用,因此也只能返回指针和引用,不能返回对象。阅读全文>

    发表于 @ 2007年12月29日 11:23:00|评论(loading...)|编辑

    Csdn Blog version 3.1a
    Copyright © 春分化雪