除非4字节对齐,否则无法将变量设置为地址

时间:2017-06-20 03:29:20

标签: c++ visual-c++ memory-alignment

我使用的是VC ++ x86,假设MyHidingActivity为32位,int为16位。

让我说我有一个变量short我想将它的地址设置为short* a;是的我知道当我试图去除指针时这不起作用,我实际上并没有设置它到了这么低的地址,我只是在简化。虽然我将其硬编码为已知值。

0xA不是4字节对齐的,所以当我这样做时:

0xA

我没有得到short* a = reinterpret_cast<short*>(0xA) cout << a; 我得到0xA,这比我想要变量地址的位置低2个字节。为什么会发生这种情况,如何将变量的地址设置为非4字节对齐的东西?

0 个答案:

没有答案