| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2045 人关注过本帖
标题:为什么大的数组要定义在main函数外?
只看楼主 加入收藏
msl12
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2015-2-6
结帖率:25%
收藏
 问题点数:0 回复次数:6 
为什么大的数组要定义在main函数外?
这个好像和堆栈有关?
还有,怎么看栈的空间呢?
搜索更多相关主题的帖子: 空间 
2015-05-22 13:15
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9030
专家分:54050
注 册:2011-1-18
收藏
得分:0 
没有这说法
只是某些编译器的实现(而非C/C++标准所规定)可能将全局变量和局部变量放在不同的数据段中而已
2015-05-22 13:54
lu3664198
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:55
专家分:185
注 册:2014-11-16
收藏
得分:0 
全局数组在堆申请,本来我是这样肯定的,但看到楼上,我就不敢肯定了

wwwwwww...~~;
本人为大一新生,说的不好不要拍我 ~ ( ̄~ ̄) ;
2015-05-22 17:00
msl12
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2015-2-6
收藏
得分:0 
回复 2楼 rjsp
C语言没有统一这个标准的么
2015-05-22 20:15
msl12
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2015-2-6
收藏
得分:0 
啦啦啦(顶下)
2015-05-25 19:30
TAAAAB
Rank: 7Rank: 7Rank: 7
来 自:湖南
等 级:黑侠
威 望:1
帖 子:243
专家分:635
注 册:2011-5-29
收藏
得分:0 
没有规定说大的数组要定义在main()外吧,你在哪里看到的介绍下

栈就是先进后出,不要想着它有多特别。就是一块内存,我们按先进后出的原则来使用。
个人是这样理解的,也不知道对不对。反正很多东西是我们把它想得复杂了。

人有多懒,编程就有多难。
2015-05-25 21:54
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
语法中没有这个规定,但实际编程中必须考虑你的数组大小。在函数中能定义多大的数组取决于编译时指定的栈空间大小(可人为指定,默认好像是1M),所以过大的数组定义在函数里会造成栈溢出错误,如果定义在函数外,则是在静态内存区定义,在这一区域32位系统会给每个进程分配多大3G的虚拟内存。

能编个毛线衣吗?
2015-05-25 22:09
快速回复:为什么大的数组要定义在main函数外?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020393 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved