为LPVOID分配值

时间:2015-01-11 09:47:55

标签: c++

我正在关注网络上的游戏制作教程, 和收益分配像这样的LPVOID的人

LPVOID BaseAddress = (LPVOID)2199023255552;

LPVOID BaseAddress = (LPVOID)2199023255552;

但是当我尝试做同样的事情时,它总是最终为0。 谁能告诉我我做错了什么?

1 个答案:

答案 0 :(得分:0)

除了随机分配一个整数并尝试使用该值成为LPVOID的坏主意之外,它可能发生的是:

  • 或者,您没有编译到64位系统(正如molbdnilo在注释中提到的那样),因此将大于32位的值分配给32位变量会在编译器中触发未定义的行为。尝试使用较小的值,如20,并查看变量是否仍为0.基本上在这些情况下,编译器可以执行任何操作,甚至将其分配给0xDEADBEEF,如果它想要:http://en.wikipedia.org/wiki/Undefined_behavior
  • 或者,你没有使用变量,因此编译器正在优化它(基本原理是:如果你不打算使用它,为什么计算机会花时间为内存位置分配值?)< / LI>