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

nit*_*lal 10 c

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

Jur*_*aho 12

只需将地址分配给指针:

char *p = 0xff73000;
Run Code Online (Sandbox Code Playgroud)

并根据需要访问该值:

char fist_byte = p[0];
char second_byte = p[1];
Run Code Online (Sandbox Code Playgroud)

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


Ari*_*Ari 12

char* p = 0x66FC9C;
Run Code Online (Sandbox Code Playgroud)

这将导致此警告:

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

要设置某个地址,您必须执行以下操作:

char* p = (char *) 0x66FC9C; 
Run Code Online (Sandbox Code Playgroud)


Zde*_*ica 11

两种方式:

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

char value = *(char*)0xff73000;
Run Code Online (Sandbox Code Playgroud)

2.将地址分配给指针:

char* pointer = 0xff73000;
Run Code Online (Sandbox Code Playgroud)

然后访问值:

char value = *pointer;
char fist_byte = pointer[0];
char second_byte = pointer[1];
Run Code Online (Sandbox Code Playgroud)

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