C# 从内存中读取指针位置的值

C# 从内存中读取指针位置的值,c#,pointers,C#,Pointers,我需要从内存位置0到3个字节获取值,假设int使用4个字节的数据,如果long使用8个字节, 我想读取0到7个字节作为long的数据,并查看它返回的值。 有人能帮我写C代码吗 问候,, Vix这可能非常危险,您如何获得地址以及如何评估其有效性?并非每个地址都有效,尝试读取其中一些地址会导致异常 但是你可以用这些方法来做这件事 int intValue = Marshal.ReadInt32(addr); long longValue = Marshal.ReadInt64(addr); 您还需

我需要从内存位置0到3个字节获取值,假设int使用4个字节的数据,如果long使用8个字节, 我想读取0到7个字节作为long的数据,并查看它返回的值。 有人能帮我写C代码吗

问候,,
Vix这可能非常危险,您如何获得地址以及如何评估其有效性?并非每个地址都有效,尝试读取其中一些地址会导致异常

但是你可以用这些方法来做这件事

int intValue = Marshal.ReadInt32(addr);
long longValue = Marshal.ReadInt64(addr);
您还需要捕获AccessViolationException


您还试图从虚拟地址或物理内存中读取数据。从C#中,您将只阅读流程的最后部分。您必须使用内核模式驱动程序才能直接访问计算机上的物理内存。

如果需要捕获访问冲突,您可能做错了什么。int i=16;长j=56;int*p1;长*p2;p2=&j;p1=&i;我想从0-3字节的int中读取存储的值,因为int分配了4字节,long分配了8字节,类似于0-7字节的long。为什么首先需要指针?整数已经包含这些字节。您可以使用
BitConverter.GetBytes
获取表示整数的字节。我想检索整数中0-3字节中存储的值。如何执行?我使用指针是为了另一个目的。你自己的进程还是另一个进程?