gpt4 book ai didi

c - 从已知地址访问数组

转载 作者:太空狗 更新时间:2023-10-29 17:09:45 26 4
gpt4 key购买 nike

我有一个代码,我通过了内存中的某个地方。内存中的这个地方指向一个数组

uint32_t *ps2 = NULL;
uint32_t src_address = 0x1ffffc3;

如何从此地址读取数组的值?我试着按如下方式转换它

*ps2 = (void *)src_address;

但它给了我一个错误:从‘void*’到‘uint32_t’的无效转换

问候,

最佳答案

你有两个问题:

  1. 首先,指针ps2 是一个空指针,它不指向任何地方。这意味着您不能取消引用它。

  2. src_address 不是指针,但它确实应该是。

总而言之,您对指针及其使用方式的理解似乎有些困惑。

要让它工作,首先将 ps2 定义为不是指针:

uint32_t ps2;

然后定义src_address 作为一个指针:

uint32_t *src_address = (uint32_t *) 0x1ffffc3;

最后像普通指针一样取消引用 src_address:

ps2 = *src_address;

可能存在第三个问题:src_address 的地址未针对 uint32_t 对齐。在某些系统上,未对齐的访问是无效的,并且会导致硬件异常。

关于c - 从已知地址访问数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55511293/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com