#define N 1000000 として

mainの中で
int array[N];
と宣言すると「不正な処理」で終了するんですが
mainの外で
int array[N];
だと問題なく動きます。これはどうしてなんですか?

#define N 100000なら
mainの中でも大丈夫だったんですが...
OS WinME メモリ128M コンパイラはbcc32です。