如何使用C编程语言从给定的内存地址(例如0xfed8213
)读取值?
答案 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中回答了你的问题。