全局变量太多是否会导致堆栈溢出

 我来答
DK_XIAOXIAO
推荐于2017-09-24
知道答主
回答量:25
采纳率:0%
帮助的人:0
展开全部
不会
首先全局变量是不占堆栈空间的
全局全量编译的时侯是放在.data段的
只有没有static修饰的局部变量在程序运行的时侯临时分配在栈上,new,或malloc等定义的变量分配在堆上
如果想让栈溢出也很容易,栈也有其极限的,只要定义一个无限递归函数,让它没完没了的递归就行了,一会就崩了。
建议学一下编译原理
ghost4063
2011-05-16 · TA获得超过6523个赞
知道大有可为答主
回答量:2940
采纳率:75%
帮助的人:2787万
展开全部
准确的说,如果你全局变量太多,编译器经过计算,发现内存不够用了,会直接报错,连执行程序都生成不了。
运行过程中堆栈溢出一般都是你程序中的BUG引起的。
编译器虽然会有某些BUG,但在这方面还是值得信任的,如果碰到问题就先怀疑编译器,那C开发就没法做了,直接自己写汇编吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lyyp321
2011-05-16 · TA获得超过5298个赞
知道大有可为答主
回答量:1069
采纳率:89%
帮助的人:536万
展开全部
不会。
堆栈溢出一般是由于编译器或解释器的Bug引起的问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式