在C中,如何打印出存储在特定内存地址的内容?

时间:2013-05-27 17:45:20

标签: c memory memory-management memory-address

是否可以打印出存储在特定内存地址的内容?例如,我想知道存储在地址0x7FFFFF0的内容。我该怎么做?我不知道手头的地址存储了什么,即。它可以是int或char或null终止符。

1 个答案:

答案 0 :(得分:2)

根据您的环境,您可以简单地声明指针并取消引用它:

volatile unsigned int *p = (volatile unsigned int *)0x7FFFFF0;
printf("%u\n", *p);

此操作要求您的程序有权访问该内存,当然。您的里程可能因不同的操作系统和环境而异。

你肯定无法在运行时提取任何类型信息而无需做更多的工作来弄清楚内存代表什么,从语义上讲,然后在该上下文中提取你关心的字节。