内存地址在8位数字后被截断

时间:2018-11-23 20:08:02

标签: c++

8位数字帮助后,内存地址将被切断

DWORD* memoryAddress = (DWORD*)0x155221000;

转换后从0x155221000变为0x55221000。

1 个答案:

答案 0 :(得分:1)

在32位系统上,地址长4个字节。因此DWORD* memoryAddress = (DWORD*)0x155221000;会在定义上被截断(同样不适合使用C样式的强制类型转换)。编译器应该顺便给您一个截断警告。

1428295680是相同值的10进制表示(地址通常以十六进制表示,但仍为相同值)。

正如来自不同人的评论所说,DWORD是4个字节(只是巧合,地址也是4个字节),出于相同的原因,它也会截断您的电话号码。