函数返回操作是否成功,函数计算结果就选择通过形参输入的指针赋值的方法进行输出。
然后就发现个问题:当形参地址取得比较“简短”时,赋值成功,不出错误;
比如这样:
当形参地址取的比较“深入”时,赋值触发Hardfault,比如这样:
错误内容:
搜索论坛确认UNALIGNED问题是对齐问题,以前double赋值的时候就碰到过赋值对齐问题,使用rt_memcpy解决,这里同样用这种办法:
就是很好奇:为什么直接取函数附近声明的变量地址再赋值,就不出错误;而取其他文件声明变量地址再赋值,就会触发对齐错误?
以及这个问题只能用rt_memcpy方法来解决吗,有没有其他解决方法呢?
另一个传入的地址不知道传入的时候正不正常。这个是否为全局变量?如果是静态变量要考虑函数退出的时候释放空间的问题。还有就是那个函数的传入指针类型是什么?
我返回指针也是用rt_memcpy的办法。参考strcpy的写法。将指针作为函数参数传入,并返回该指针。成功返回该指针,失败返回空指针。
附议