局部数组能否引发全局数组错误?——函数中的数组导致全局数组错误,改为全局数组后问题解决。

2019-07-20 20:10发布


用探索者定义了一个u8类型的240*240全局数组用于存储图像。二值化后数组只有0和255两个值。
在某个函数中定义了一个临时数组temp[240][240]对全局数组进行简单处理后存储,然后发现存储的数值不是理论的0和255。
串口发回来全部数据发现出现许多乱七八糟的值。将函数内的局部数组定义为另一个全局数组后该问题解决。
编译的时候没有警告和错误。

请问这么看来是不是局部数组影响到了全局数组?理论上不应该会影响到的吧?求解释,谢谢大家。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
龙之谷
1楼-- · 2019-07-20 21:34
larry 发表于 2016-9-11 09:41
您好,请问能不能详细的解释一下?我觉得您的意思是,局部的堆栈空间不够了,所以占用了全局的?我也这么 ...

堆栈溢出,论坛内查一下相关帖子
xuande
2楼-- · 2019-07-20 22:14

是不是超出容量了?
但编译、连接应当有报错,说不通。


aozima
3楼-- · 2019-07-21 00:56
 精彩回答 2  元偷偷看……
龙之谷
4楼-- · 2019-07-21 01:34
堆栈
larry
5楼-- · 2019-07-21 06:23
 精彩回答 2  元偷偷看……
larry
6楼-- · 2019-07-21 12:23
aozima 发表于 2016-9-10 23:18
stack overflow

搞清楚不同的变量存储在哪里,空间有多大。

您好,您的意思是不是指,给全局和局部分配的堆栈空间不同,局部的如果不够会占用全局?可是我的全局空间可以开到两个240*240,那么就算是局部数组占用了全局空间,也是有空间可以用的,为何非要占用已经使用了的?

一周热门 更多>