6

重複の可能性:
スタック オーバーフロー エラーとは?

サイズが 4096*1024 の大きな配列を宣言すると発生します。

First-chance exception at 0x01382e97 in nsfclient.exe: 0xC00000FD: Stack overflow.
Unhandled exception at 0x01382e97 in nsfclient.exe: 0xC00000FD: Stack overflow.

Visual Studio で大きな配列を宣言できるようにするにはどうすればよいですか?

4

2 に答える 2

10

より大きな配列をスタックに格納できるようにするには、スタック サイズを明示的に増やす必要があります。私が覚えている限り、これは/Fオプションを使用して行われます。

malloc別のオプションは、動的配列を使用することです(またはを使用して割り当てられますnew)。

EDIT(Jefrey Theobaldに感謝):/stackオプションを使用して行われるリンカーのスタックサイズも増やす必要があります。このオプションは、プロジェクト -> プロパティ -> リンカー -> システムを右クリックして設定することもできsetting stack commitますstack reserve sizeここに画像の説明を入力

于 2012-12-29T11:02:24.877 に答える
4

コードは表示されませんが、スタック上で配列を宣言していると思います。malloc代わりに( を使用して) ヒープで宣言してみてください。free後で確認してください。

char* bigArray = malloc(LARGE_SIZE);
/* use bigArray */
free(bigArray);
于 2012-12-29T11:02:09.490 に答える