春风化雪的专栏

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

用户操作
[即时聊天] [发私信] [加为好友]
春分化雪ID:northwest_wolf
18342次访问,排名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

    northwest_wolf的相册

    Csdn Blog version 3.1a
    Copyright © 春分化雪