听说vs默认的堆栈保留大小是1M,那如果超过1M会有什么后果?解决方法

听说vs默认的堆栈保留大小是1M,那如果超过1M会有什么后果?
假如有:
int test[1000000000];

会有什么后果???

------解决方案--------------------
栈溢出会导致各种莫名其妙的结果,影响部分代码的正常运行。

我也试过,当时不懂,定义了一个超大的临时数组,结果每次运行到那里都出问题。
我改成malloc申请内存之后,就一切正常了。

栈的优点是速度快,但是空间有限。
------解决方案--------------------
溢出错误,比如一个无限递归,就会溢出崩溃
------解决方案--------------------
探讨

引用:
栈溢出会导致各种莫名其妙的结果,影响部分代码的正常运行。

我也试过,当时不懂,定义了一个超大的临时数组,结果每次运行到那里都出问题。
我改成malloc申请内存之后,就一切正常了。

栈的优点是速度快,但是空间有限。


主要问题是,超过了大小,编译器不会报任何警告和错误.

刚刚测试了一下,默认情况下,只能定义这么大的数组:
……

------解决方案--------------------
有一个专门的异常码,就是栈溢出,*吧。超出以后就会抛这个异常。