用C语言去取一个给定地址里的值

比如地址为:0xbfb2492c。此地址是 int i = 1;后取到的,现在要用地址得到值。

没看太懂您的问题,不过取地址内的值,一般用同类型指针的解引用,如p是一个有效指针,*p即为p指向地址的值。追问

给定一个具体的地址(比如是0xbfb2492c,假设改地址存在且可以取到值),取其值。

追答

可取到值得意思是0xbfb2492c
中有有效数据吧。

知道0xbfb2492c这个地址存放数据的类型吗?

假设是int型吧,

int *pi = 0xbfb2492c; // 定义个同类型指针变量,并用已知地址初始化

则 *pi就是该地址中的内容。

一定要知道0xbfb2492c中数据的类型。

追问

假如就是int类型的,按你说的这样打印结果会出现段错误。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-02-15
不用挣扎了,我试过了各种方法,像他们讲的什么“*p=*(0xbfb2492c)”还有像“printf(“%d,int *(0xbfb2492c))”;之类的,都是无效的。,最接近答案的就是
int *p=NULL;
printf("%d",*(p+0xbfb2492c));
但是这样会因为非法访问而导致程序出错。
你要知道,你所谓的0xbfb2492c只是首地址,你的这个数据int i=1是被连续的存储一片二进制数据。所以,你不用挣扎了。
我猜你想知道是不是某个地址真的存储了某个值,对吧。
相似回答