自己写的代码如下图所示,程序编译没问题,将m【5000】改为m【500】程序可以正常运行,但5000就不行,这是为什么啊?

2019-10-16 05:22发布


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
22条回答
taizonglai
1楼-- · 2019-10-16 08:20
 精彩回答 2  元偷偷看……
xueshawu
2楼-- · 2019-10-16 09:01
你5000的时候,代码块的大小,会不会超过了
taizonglai
3楼-- · 2019-10-16 13:29
数组m为5000,那么需要使用到的栈空间就是5000*2=10000个字节=10K。看一下你设置的栈空间有没有这么大!!!
密耳
4楼-- · 2019-10-16 16:43
zuozhongkai 发表于 2016-12-2 15:39
数组m为5000,那么需要使用到的栈空间就是5000*2=10000个字节=10K。看一下你设置的栈空间有没有这么大!! ...

是这样吗?定义一个大的buffer,栈空间一定要和这个buffer一样大?甚至更大??我目前的产品有定义8K的buffer,但栈空间只有1K.目前跑起来运行正常。
dengxingling8
5楼-- · 2019-10-16 20:41
本帖最后由 dengxingling8 于 2016-12-2 15:58 编辑

栈空间过大(即使大于SRAM)并不会产生警告或者错误,在运行过程中,只要没有使用到和变量冲突的地址,程序运行就不会出现问题。500可以,5000不行也是因为这样
雨雪纷纷
6楼-- · 2019-10-16 23:01
 精彩回答 2  元偷偷看……

一周热门 更多>