有时候我们编写C++代码是,数组开的太大,会出现栈溢出的情况,这是由于操作系统给程序开出的栈的大小一般为1M ~ 2M,如果我们开的数组为double a[1000][1000],占用的空间就为8*1000*1000/1024/1024 = 7.629M,栈的空间就不够了。
解决的方法有两种:
1. 把数组改为stl的vector。
2. 使用dev c++编译,在Linker中加入一条指令 -Wl,--stack=SIZE,其中SIZE为栈的大小。
64M = 64∗1024∗1024=67108864