日期:2014-05-17  浏览次数:20759 次

win7x64下变量内存地址分配问题
创建了一个结构体变量,wrap
然后将它的地址赋值给
int _64 i = reinterpret_cast<DWORD>(&wrap);
本来应该截断的,因为DWORD是4字节的,地址是8字节的,可是我看内存地址的高字节全为0
00000000`002fe2d0  
这样得到的i就是正确的。。试了n边,wrap的地址一直这样分配(win7 x64),可是我不知道为什么高位地址一直不用?
大家有什么这方面的资料分享吗?
谢谢!

------解决方案--------------------
DWORD是4字节的,地址是8字节的,确实截断了啊,
但是你赋值给了int _64 i ,这个变量的地址也是64位的,所以看起来是00000000`002fe2d0 ,一切正常啊
------解决方案--------------------
可以用的,但是地址是向上增长的,每个程序有独立的内存空间。你必须把4GB以下的部分都用掉了上面才有啊。