C - 从特定存储器地址读取值

时间:2015-12-18 02:16:55

标签: c

如何使用C编程语言从给定的内存地址(例如0xfed8213)读取值?

1 个答案:

答案 0 :(得分:14)

每个流程都有自己的virtual address space,因此,一个程序中的地址0x12345678与另一个程序中的地址0x12345678不同。

您只需执行以下操作即可访问地址:

#include <stdio.h>

int main(int argc, char *argv[]){
    char *ptr = (char *)0x12345678; //the addr you wish to access the contents of
    printf("%c\n", *ptr); //this will give you the first byte, you can add any more bytes you need to the ptr itself, like so: *(ptr + nbyte).

    return 0;
}

你可能会遇到分段错误,除非你真的知道你在做什么。我的猜测是你认为这是解决其他问题的方法,而这不是实际的解决方案。但这确实在OP中回答了你的问题。

这是Another Virtual Memory learning resource.