在一个工程里面,定义了一个全局变量u8 bit_data[25],当跑进某个特定函数时,只要里面的某个局部变量的值改变了,这个全局变量也跟着改变了。结果发现,全局变量的地址跟局部变量的地址是重合的。把栈的空间改大了,两个变量的地址就不一样了。但是,会不会再出现像上面这种情况,某个局部变量的地址跟某个全局变量的地址又冲突了?刚才说的情况具体看下面的图,全局变量是bit_data[25],局部变量是rand_value。
全局变量 u8 bit_data[25]
局部变量及那个变量所在函数
bit_data的地址和rand_value的地址
改变rand_vaule的值,bit_data值也改变了
至于你说,把栈改大了,还会不会溢出,这就要看你写的程序了。没手段保证。
一周热门 更多>