
全局变量太多是否会导致堆栈溢出
展开全部
不会
首先全局变量是不占堆栈空间的
全局全量编译的时侯是放在.data段的
只有没有static修饰的局部变量在程序运行的时侯临时分配在栈上,new,或malloc等定义的变量分配在堆上
如果想让栈溢出也很容易,栈也有其极限的,只要定义一个无限递归函数,让它没完没了的递归就行了,一会就崩了。
建议学一下编译原理
首先全局变量是不占堆栈空间的
全局全量编译的时侯是放在.data段的
只有没有static修饰的局部变量在程序运行的时侯临时分配在栈上,new,或malloc等定义的变量分配在堆上
如果想让栈溢出也很容易,栈也有其极限的,只要定义一个无限递归函数,让它没完没了的递归就行了,一会就崩了。
建议学一下编译原理
展开全部
准确的说,如果你全局变量太多,编译器经过计算,发现内存不够用了,会直接报错,连执行程序都生成不了。
运行过程中堆栈溢出一般都是你程序中的BUG引起的。
编译器虽然会有某些BUG,但在这方面还是值得信任的,如果碰到问题就先怀疑编译器,那C开发就没法做了,直接自己写汇编吧。
运行过程中堆栈溢出一般都是你程序中的BUG引起的。
编译器虽然会有某些BUG,但在这方面还是值得信任的,如果碰到问题就先怀疑编译器,那C开发就没法做了,直接自己写汇编吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不会。
堆栈溢出一般是由于编译器或解释器的Bug引起的问题。
堆栈溢出一般是由于编译器或解释器的Bug引起的问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询