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
问问题
69496 次
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 回答