0

私は以下のコードを持っています:

#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]ます。ただし、グローバルスコープに移行すると

#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 で c++ を使用して vs 2008 を使用する

4

1 に答える 1

4

あなたはスタックを台無しにしています。通常、サイズは約 1 MB で、それ以上を割り当てています。グローバル スペースに移動すると、スタック内よりもはるかに多くのスペースが使用できるため、エラーが解決されます。

于 2013-02-10T08:08:05.200 に答える