你好,我最近调试项目时发现如下这种情况:
我在一个c文件里定义了两个全局变量,unsigned int num; 和 unsigned int date[]; 。调试时发现num分配的地址是0x118000d4;date数组分配的首地址是0x118000d0。结果是当date数组有很多数据存放时,就会把num的值给覆盖了,不知道应该怎样才能避免这种情况发生呢?
Shine:
请问定义数组的时候定义数组大小了吗?
shiqin yang:
回复 Shine:
没有定义数组大小
Shine:
回复 shiqin yang:
试试定义数组大小,避免太大覆盖掉后面的数据。
shiqin yang:
回复 Shine:
嗯,我之前是把数组改成固定大小的就可以了,但是我这里的数据大小是不固定的,这样做不是很好,有没有更好的办法解决这个问题呢?从而不需要改固定大小数组
shiqin yang:
回复 Shine:
这个问题在我定义一个double变量的时候也出现了,因为double占用8个字节,调试时发现被其它变量串改了
shiqin yang:
回复 Shine:
现在也只能这样做了