【发布时间】:2017-06-13 12:27:32
【问题描述】:
我在 C#.Net 中编写了一个应用程序,其中包含一个在运行时更改的简单双变量。我的目标是从另一个程序中读取这个变量。所以我用 ArtMoney 查看了内存以获取内存地址。但是我的变量的地址在运行时会发生变化。谁能告诉我为什么?
在两次尝试中,地址都更改了两次,然后变得稳定。两次尝试更改的地址的前两个字节相同,但下一个字节在应用程序的每次启动时都不同。
- 为什么地址在运行时会更改两次?
- 如何确定地址的“偏移量”?
【问题讨论】:
-
这里有很多可能性,但简单的事情比如时间和ASLR 可能在这里起作用。另一方面,没有人保证跨多次运行的内存分配最终会使用相同的地址,所以为什么会发生这种情况并不重要。确实如此,处理它。
-
查看您的代码可能有助于做出明智的回应,但 Marc 在下面的回答可能是正确的。
-
根据我为游戏制作培训师的经验,我知道可能会有一系列指针最终指向一个静态地址
标签: c# .net memory memory-address