17

I wanted to read a value which is stored at an address whose absolute value is known. I am wondering how could I achieve this. For example. If a value is stored at 0xff73000. Then is it possible to fetch the value stored here through the C code. Thanks in advance

4

3 回答 3

17

只需将地址分配给指针:

char *p = (char *)0xff73000;

并根据需要访问该值:

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

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

于 2013-09-11T12:30:48.973 回答
17

两种方式:

1. 将地址文字转换为指针:

char value = *(char*)0xff73000;

将文字转换为类型的指针。

使用前缀取消引用*

同样的技术也适用于其他类型。

2. 将地址分配给指针:

char* pointer = (char*)0xff73000;

然后访问值:

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

char您的地址代表的类型在哪里。

于 2016-03-24T13:51:53.910 回答
13
char* p = 0x66FC9C;

这将导致此警告:

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

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

char* p = (char *) 0x66FC9C; 
于 2019-02-24T11:31:31.670 回答