407全局变量和局部变量地址会冲突?

2019-07-20 06:14发布

在一个工程里面,定义了一个全局变量u8 bit_data[25],当跑进某个特定函数时,只要里面的某个局部变量的值改变了,这个全局变量也跟着改变了。结果发现,全局变量的地址跟局部变量的地址是重合的。把栈的空间改大了,两个变量的地址就不一样了。但是,会不会再出现像上面这种情况,某个局部变量的地址跟某个全局变量的地址又冲突了?刚才说的情况具体看下面的图,全局变量是bit_data[25],局部变量是rand_value。
全局变量 u8 bit_data[25]

局部变量及那个变量所在函数

bit_data的地址和rand_value的地址


改变rand_vaule的值,bit_data值也改变了

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
正点原子
1楼-- · 2019-07-20 09:25
看看是不是堆栈溢出了。
cainiao1111
2楼-- · 2019-07-20 11:47
 精彩回答 2  元偷偷看……
yayagepei
3楼-- · 2019-07-20 14:33
 精彩回答 2  元偷偷看……
edmund1234
4楼-- · 2019-07-20 15:49
看看是否有些函数的参数是用了结构体, 而不是结构体的指针, 否则栈是很难被弄到溢出的
屋脊雀
5楼-- · 2019-07-20 16:46
栈溢出是一个需要注意的问题,尽量不要在函数内部定义大数组。
至于你说,把栈改大了,还会不会溢出,这就要看你写的程序了。没手段保证。
HCHDaLeiGe
6楼-- · 2019-07-20 17:07
 精彩回答 2  元偷偷看……

一周热门 更多>