Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C语言中,如何打印出存储在特定内存地址的内容?_C_Memory_Memory Management_Memory Address - Fatal编程技术网

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

在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); 当然,此操作需要您的程序具有访问该内存的权限。您的里程数可能因操作系统和环境而异 如果不做更

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

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

volatile unsigned int *p = (volatile unsigned int *)0x7FFFFF0;
printf("%u\n", *p);
当然,此操作需要您的程序具有访问该内存的权限。您的里程数可能因操作系统和环境而异


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

x=0x7FFFFF0;int val=*x?@MarcB,没有演员阵容是不行的,但这是正确的想法。是的。但当然,OP无论如何都无法判断地址是否有char或int,它们是一样的,真的。你为什么要这样做?您如何知道任意内存地址包含感兴趣的内容?如果它是一个I/O端口或一些CPU检测数据,是否应该有一个已定义的符号来使用?