发新帖我要提问
12
返回列表
打印

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

[复制链接]
楼主: supernan
手机看帖
扫描二维码
随时随地手机跟帖
21
yszong| | 2022-1-6 23:15 | 只看该作者 回帖奖励 |倒序浏览
楼主检查一下下面这个赋值语句对不对?add=ss[2];

使用特权

评论回复
22
stly| | 2022-1-6 23:18 | 只看该作者
循环体当然不会影响指针所指向的变量

使用特权

评论回复
23
shimx| | 2022-1-6 23:21 | 只看该作者
这种情况要么出现一些数组越界,要么程序确实有地方改动,只是你没注意, 建议上详细代码.

使用特权

评论回复
24
zhenykun| | 2022-1-6 23:25 | 只看该作者
for(fx=ss[0];fx>0;fx--)
                {
                    i=(unsigned char*)add;
                    *i=ss[ref];
                    ref++;
                    add++;
                }

这段代码写得稀里糊涂,你仔细看看把

使用特权

评论回复
25
llljh| | 2022-1-6 23:27 | 只看该作者
估计是循环体运行的时候其他程序段改动了。

使用特权

评论回复
26
pengf| | 2022-1-6 23:29 | 只看该作者
你说的问题肯定不存在,至于你的问题,你给的代码根本没有办法看

使用特权

评论回复
27
xxrs| | 2022-1-6 23:31 | 只看该作者
得上下结合,多方理解,然后判断现象是哪一个变量上发生的

使用特权

评论回复
28
chenjunt| | 2022-1-6 23:33 | 只看该作者
然后还要琢磨程序流程(这个部分是最简单的,对各位看官来说),然后根据程序流程猜测收到的通信包的结构。。。

使用特权

评论回复
29
zhanghqi| | 2022-1-6 23:35 | 只看该作者
最后,只能猜测
我猜测的问题是add的赋值和强制add转成指针类型并进行取数操作:
。。。
   add=ss[2];
。。。
   i=(unsigned char*)add;
                    *i=ss[ref];
。。。。
add作为指针,指向的是芯片地址空间,ss[2]这个ss数组是用来管理内部地址空间的分配表么?

使用特权

评论回复
30
jlyuan| | 2022-1-6 23:37 | 只看该作者
如果是这样,这个点所映射出来的 程序对内部资源的管理技巧,已经有点超越我的编程能力范围了。

使用特权

评论回复
31
llljh| | 2022-1-6 23:40 | 只看该作者
看看地址是不是有问题啊

使用特权

评论回复
32
supernan|  楼主 | 2022-1-6 23:42 | 只看该作者

明白了,多谢大家讨论这么多哈

使用特权

评论回复
33
caigang13| | 2022-1-7 08:55 | 只看该作者
是在调试界面中看到的?

使用特权

评论回复
34
tpgf| | 2022-2-2 15:50 | 只看该作者
是不是地址的问题啊

使用特权

评论回复
35
磨砂| | 2022-2-2 16:09 | 只看该作者
越界的话会不会报错呢

使用特权

评论回复
36
晓伍| | 2022-2-2 16:18 | 只看该作者
如何确保某些地址的数据不被改变呢

使用特权

评论回复
37
八层楼| | 2022-2-2 16:24 | 只看该作者
这个是说的汇编语言吧

使用特权

评论回复
38
观海| | 2022-2-2 16:31 | 只看该作者
经常会有这样的误操作

使用特权

评论回复
39
guanjiaer| | 2022-2-2 16:36 | 只看该作者
指针操作真的很危险

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则