c# - C#读取指针地址值

标签 c# pointers memory memory-management memory-address

(对不起,我的英语不好 )

如何从C#中的指针读取值地址?

例:
我知道我的指针,但是在应用程序启动时值会改变。

1)开始

(Pointer) 0x0018F36C   =  ( Value) 0x0342AD68


2)重新启动

(Pointer) 0x0018F36C  = ( Value Changed ) 0x0342AE20


其实我有一个基址0x0018F36C
但需要从指针读取值并保存很长时间

例:

long addr_base = 0x0018F36C;
long address;  //Obviously I do not know the Address


现在我需要从addr_base读取long值并将值(long)放入地址



addr_base = memory.ReadAddress(addr_base)


有谁知道如何读取存储在名为addr_base的变量中的地址?

最佳答案

如果您的地址类似于0x0018F36C,则可以:

IntPtr ptr = (IntPtr)0x0018F36C;
long longValue = Marshal.ReadInt64(ptr);


如果需要从某个地址读取另一个地址,则还有另一个Marshal方法:

IntPtr ptr = (IntPtr)0x0018F36C;
IntPtr ptr2 = Marshal.ReadIntPtr(ptr);

关于c# - C#读取指针地址值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30476131/

相关文章:

C# 复杂的正则表达式

c - 错误: Void value not ignored as it ought to be in C programming

c++ - 解释指针的这种情况

c - ‘->’ 的无效类型参数

python - 某个 skiprows 参数后的 pandas 内存错误

arrays - c 中的空数组大小

c# - 我将如何将其他参数传递给 MatchEvaluator

c# - "\",\x0A\x0D"代码在编写 CSV 时在 C# 中的作用

c# - ASP.NET MVC 3 表单提交影响 RenderAction 处理程序

c - 总线错误: 10 when scanning address space in c