大数组定义在main函数中不能执行,为什么将其定义为全局变量就可以执行?

 我来答
之凯泽cm
2010-09-17 · TA获得超过128个赞
知道答主
回答量:46
采纳率:0%
帮助的人:59万
展开全部
数组定义在函数中时,占用的内存来自栈空间,栈空间是在进程创建时初始化的,有固定的大小,一般为几十KB,所以太大的数组会耗光栈空间。

而全局变量占用的堆空间,堆空间中的内存是按需分配,自由增长的,可以非常大,32位的系统中可以大到4GB。

------------------------------------------------------------------
楼下说得对,我记错了。堆空间是malloc()的。
全局变量是在编译的时候编到数据段的,可以比较大。
zhuyifei250
2010-09-16 · TA获得超过133个赞
知道答主
回答量:108
采纳率:0%
帮助的人:90.5万
展开全部
前半部分同意,后半部分楼上说的有点问题,全局变量一般分配在数据段。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式