我有以下代码:
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int pnp[2][105],fin[2][105];
int time[105],n,m,dummy,prod = 0;
int const maxvv = 2000000;
int d[maxvv];
return 0;
}
我在int d[maxvv]
获得了一个stackoverflow。但是,如果我转向全球范围
#include<iostream>
#include<cstdio>
using namespace std;
int const maxvv = 2000000;
int d[maxvv];
int main(){
int pnp[2][105],fin[2][105];
int time[105],n,m,dummy,prod = 0;
return 0;
}
我没有收到此错误。任何人都可以告诉我有什么区别。在Windows 7上使用vs 2008和c ++
答案 0 :(得分:4)
你破坏了堆栈。它通常大约1MB左右,你分配的不仅仅是这个。移动到全局空间可以解决您的错误,因为那里有更多可用空间而不是堆栈。