gpt4 book ai didi

使用指针将数据从一个地址复制到另一个地址

转载 作者:行者123 更新时间:2023-11-30 16:51:01 24 4
gpt4 key购买 nike

我正在尝试使用 C 将半字(即 16 位)从微 Controller 的一个内存地址移动到另一个内存地址。请看一下下面的简单代码:

#include <stdint.h>

int main(void){

int16_t *src = (int16_t*)0x20000000; //source memory address
int16_t *dst = (int16_t*)0x20000016; //destination memory address
*dst = *src; //dereference both, set destination value to source value
return 0;
}

当我到达 *dst = *src 行时,我就遇到了 Hardfault 异常。我对指针和取消引用/引用的理解不足可能是问题所在。我希望得到一些帮助。

编辑:有什么方法可以使用赋值运算符 (=) 在一行代码中编写此代码吗?

最佳答案

您正在对 0x20000016 进行写入,该写入不在 4 字节边界上。如果您的处理器不支持未对齐的读取和写入,这将导致错误。您使用什么处理器?

关于使用指针将数据从一个地址复制到另一个地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41925591/

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