【发布时间】:2015-11-29 12:51:26
【问题描述】:
我正在尝试制作一个程序,它可以获取代表 48 位地址的字符串,例如“0x7f1241249000”,并访问该给定虚拟地址的内容。输入的地址应该是合法的,因为它是从内存映射文件的结果中得到的。 因此我知道此类文件的分配位置。
我试图实现的目标是在屏幕上逐字节打印映射文件的内容,但我无法将字符串转换为相应的内存地址。
编辑 好的,现在我可以将字符串视为指向给定地址的指针。但是现在当我尝试访问映射文件的内容时,我遇到了分段错误。 我在代码中所做的是: char * 地址 = (char *) strtoull(input, NULL,16); 诠释我; for(i=0; i
使用 gdb 并显示地址输出正确的地址以及映射文件的内容,但 printf 崩溃。 抱歉,如果这是一个愚蠢的问题,我对 C 有点陌生
【问题讨论】:
-
不要这样做。寻找其他方式。
标签: c string memory input memory-address