没用的数组删掉, 我的程序却死机了?
现象: 这段代码的功能就是将接收到的数据包分解成一个个小包, 对每个小包提取信息后生成窗口分别显示出来. 之前是先分解好, 放在一个10 x 200的二维数组里, 然后一个个提取信息, 最后生成窗口. 后来我改了, 改成分解出来单个小包 -> 提取 -> 生成相对应的窗口 -> 分解下一个小包, 但是这些操作的函数的参数我还保留着老样子, 那个大数组也留着. 这时是不死机的, 如图:
(Order_Pack就是那个大数组)
首先说明, Order_Pack在整个工程内出现在这两块地方.
然后我把参数去掉, 数组也删掉, 就会出现死机的情况. 主要发生在emwin生成窗口, 然后刷新的那个函数(GUI_Exec()), 数组的大小可以变, 但不能太小, 不然也会死机.
方法: 是因为函数的栈被撑爆了, 而我这么加数组, 会让函数的栈变大, 于是阴差阳错地就不死机了. 解决的方法就是加大函数的栈, 如图所示: