如何通过C代码从绝对地址读取值

时间:2013-09-11 12:26:40

标签: c

我想读取一个存储在绝对值已知的地址的值。 我想知道我怎么能做到这一点。 例如。 如果值存储在0xff73000。 然后可以通过C代码获取存储在此处的值。 提前致谢

3 个答案:

答案 0 :(得分:7)

只需将地址指定给指针:

char *p = 0xff73000;

并根据需要访问该值:

char fist_byte = p[0];
char second_byte = p[1];

但请注意,该行为取决于平台。我认为这适用于某种低级嵌入式编程,其中平台依赖性不是问题。

答案 1 :(得分:7)

两种方式:

<强> 1。将地址文字转换为指针:

char value = *(char*)0xff73000;

<强> 2。将地址分配给指针:

char* pointer = 0xff73000;

然后访问值:

char value = *pointer;
char fist_byte = pointer[0];
char second_byte = pointer[1];

char是地址所代表的类型。

答案 2 :(得分:2)

char* p = 0x66FC9C;

这将导致此错误:

  

Test.c:在函数“ main”中:Test.c:57:14:警告:初始化   使指针从整数开始而无需强制转换[-Wint-conversion]       char * p = 0x66FC9C;

要设置某个地址,您必须要做:

char* p = (char *) 0x66FC9C;