一般因数据过多而导致栈溢出时栈为什么会溢出向内存顶端溢出,而不是向内存底部溢出?

来自电脑网络类芝麻团 推荐于

首先全局变量是不占堆栈空间的

全局全量编译的时侯是放在.data段的

只有没有static修饰的局部变量在程序运行的时侯临时分配在栈上new,或malloc等定义的變量分配在堆上

如果想让栈溢出也很容易栈也有其极限的,只要定义一个无限递归函数让它没完没了的递归就行了,一会就崩了

你對这个回答的评价是?

准确的说如果你全局变量太多,编译器经过计算发现内存不够用了,会直接报错连执行程序都生成不了。

运荇过程中堆栈溢出一般都是你程序中的BUG引起的

编译器虽然会有某些BUG,但在这方面还是值得信任的如果碰到问题就先怀疑编译器,那C开發就没法做了直接自己写汇编吧。

你对这个回答的评价是

堆栈溢出一般是由于编译器或解释器的Bug引起的问题。

你对这个回答的评价是

一个单元格的数据就能让你内存溢出我首先要说一下,你这Excel也TMD的操蛋了!

1、如非必要将贪婪匹配修改为非贪婪匹配比如:+改为+?,*改为*?

2、如非必要不要捕获分组:分组()改為(?:)

请说明你想用正则实现什么功能?

我要回帖

更多关于 栈为什么会溢出 的文章

 

随机推荐