在C语言中,如何打印出存储在特定内存地址的内容?
是否可以打印出存储在特定内存地址的内容?例如,我想知道地址0x7FFFFF0中存储了什么。我该怎么做?我不知道之前的地址中存储了什么,也就是说,它可以是int或char或null终止符。根据您的环境,您可以简单地声明一个指针并取消引用它:在C语言中,如何打印出存储在特定内存地址的内容?,c,memory,memory-management,memory-address,C,Memory,Memory Management,Memory Address,是否可以打印出存储在特定内存地址的内容?例如,我想知道地址0x7FFFFF0中存储了什么。我该怎么做?我不知道之前的地址中存储了什么,也就是说,它可以是int或char或null终止符。根据您的环境,您可以简单地声明一个指针并取消引用它: volatile unsigned int *p = (volatile unsigned int *)0x7FFFFF0; printf("%u\n", *p); 当然,此操作需要您的程序具有访问该内存的权限。您的里程数可能因操作系统和环境而异 如果不做更
volatile unsigned int *p = (volatile unsigned int *)0x7FFFFF0;
printf("%u\n", *p);
当然,此操作需要您的程序具有访问该内存的权限。您的里程数可能因操作系统和环境而异
如果不做更多的工作来弄清楚内存在语义上代表什么,然后提取出您在该上下文中关心的字节,您肯定无法在运行时提取任何类型信息。
x=0x7FFFFF0;int val=*x代码>?@MarcB,没有演员阵容是不行的,但这是正确的想法。是的。但当然,OP无论如何都无法判断地址是否有char或int,它们是一样的,真的。你为什么要这样做?您如何知道任意内存地址包含感兴趣的内容?如果它是一个I/O端口或一些CPU检测数据,是否应该有一个已定义的符号来使用?