【发布时间】:2020-09-02 19:02:20
【问题描述】:
假设我有一个整数变量 (var),它的内存地址是 1234f,但我不知道这个变量的名称,我想看看内存地址 1234f 有什么值,然后打印出来或更改 。有没有办法在 c 中做到这一点?
【问题讨论】:
标签: c variables memory memory-address
假设我有一个整数变量 (var),它的内存地址是 1234f,但我不知道这个变量的名称,我想看看内存地址 1234f 有什么值,然后打印出来或更改 。有没有办法在 c 中做到这一点?
【问题讨论】:
标签: c variables memory memory-address
如何通过c中的内存地址访问、更改和打印变量?
假设地址值有效:
首先创建一个int *。
int *var_pointer = (int *) 0x1234f;
printf("%d\n", *var_pointer);
*var_pointer = 42;
printf("%d\n", *var_pointer);
如果地址无效,则结果为未定义行为 (UB)。
【讨论】:
1234f 必须是 0x1234f
int 到int * 的转换是根据您的comment实现定义的。 *var_pointer 中的取消引用可能会由于未对齐等原因导致 UB。