如何打印出内存中某段地址的内容 用c语言

Python010

如何打印出内存中某段地址的内容 用c语言,第1张

首先你要知道0~2g这个虚拟内存空间是不让打印的,因为是内核保护区域,这个区域的大小和位置与操作系统有关。所以并不是所有地址都可以随便让你打印的~~

如果再允许的情况下:

int i

for(i=0x1000i<=0x2000++i){

printf("%02x ",*(char *)i)

}

这是在VC++ 6.0环境下的运行结果,得到的地址可能不同,但冒号右侧的值一定是相同的。

/*

12FF40 :  0

12FF41 :  0

12FF42 :  0

12FF43 : 40

Press any key to continue

*/

#include <stdio.h>

int main() {

int i,a = 1073741824

char *p = (char *)&a

for(i = 0 i < 4 ++i,++p)

printf("%4X : %2X\n",p,*p)

return 0

}

如果是a的地址

printf("%08X\n",p)

其实p就是一个int类型的数据,这里我只是把它当做16进制输出

printf("%d",p)

也是可以的..

不然就跟楼上一样输出