起因:一个全局变量数组ff[44]的部分值(ff[26]-ff[43])突然间被修改了,怪异的是:此时程序正在修改另一个变量A!
后来发现被篡改的这些变量地址和A重叠,见下图。真正是奇哉怪也!
。
ff[44]是全局变量,发现其被存储在EABI的.neardata > DDR2段,A数组被定义在static函数中,如下图:
这个是map文件显示的内存使用情况(里面有全局变量ff的地址,没有A的地址,截图没截完):
请问为什么会地址重叠?我该如何是好呢?万能的坛友帮帮我吧,在此谢谢啦!
灰小子:
把A数组也改为全局数组,并在定义的时候初始化,试试。
user4739185:
回复 灰小子:
为什么呢?能不能指点一下呢。定义成全局变量是不是需要在函数内清零呢?谢谢