另一个指针所指向的变量发生了改变

[复制链接]
1225|29
hanwe 发表于 2020-7-4 20:51 | 显示全部楼层
楼主检查一下下面这个赋值语句对不对?add=ss[2];
zhanglli 发表于 2020-7-4 20:54 | 显示全部楼层

循环体当然不会影响指针所指向的变量
happy_10 发表于 2020-7-4 21:01 | 显示全部楼层
这种情况要么出现一些数组越界,要么程序确实有地方改动,只是你没注意, 建议上详细代码.
tian111 发表于 2020-7-4 21:04 | 显示全部楼层
for(fx=ss[0];fx>0;fx--)
                {
                    i=(unsigned char*)add;
                    *i=ss[ref];
                    ref++;
                    add++;
                }

这段代码写得稀里糊涂,你仔细看看把
wangpe 发表于 2020-7-4 21:07 | 显示全部楼层
估计是循环体运行的时候其他程序段改动了。
dingy 发表于 2020-7-4 21:11 | 显示全部楼层
你说的问题肯定不存在,至于你的问题,你给的代码根本没有办法看
 楼主| supernan 发表于 2020-7-4 21:14 | 显示全部楼层

唉,还是没有什么结果,算了,多谢大家啦
wooda 发表于 2020-7-6 09:04 | 显示全部楼层
楼主的贴子,得上下结合,多方理解,然后判断现象是哪一个变量上发生的,然后还要琢磨程序流程(这个部分是最简单的,对各位看官来说),然后根据程序流程猜测收到的通信包的结构。。。
最后,只能猜测
我猜测的问题是add的赋值和强制add转成指针类型并进行取数操作:
。。。
   add=ss[2];
。。。
   i=(unsigned char*)add;
                    *i=ss[ref];
。。。。
add作为指针,指向的是芯片地址空间,ss[2]这个ss数组是用来管理内部地址空间的分配表么?
如果是这样,这个点所映射出来的 程序对内部资源的管理技巧,已经有点超越我的编程能力范围了。
coshi 发表于 2020-8-4 14:09 | 显示全部楼层
看看地址是不是有问题啊
zljiu 发表于 2020-8-4 14:10 | 显示全部楼层
楼主问题解决了吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部