このエラーが発生します
Microsoft Visual C ++ 2010 Expressでコンパイルされたコードに、以下よりも大きい数値を入力するたびに、次のようになります。
int size = 276447232;
しかし、この 会話、これ、またはあれ によれば、問題が発生する前に、2147483646まで上がることができるはずです。
空
プログラムが割り当てようとしているスタックスペースが多すぎます。
char *outputGwb = char[size]; // array is created "on the stack"
ヒープmalloc
からメモリを割り当てるには(またはnew
C ++で)使用します。後で必ず(またはC ++で)メモリを使用してください。割り当て/割り当て解除戦略を混在させないでください。free
delete
char* outputGwb = new char[size]; // C++: note use of the "new" keyword
char* outputGwb = malloc(size); // C: note no cast needed in a C compiler
したがって、この問題は特定のリソースの最大サイズに関するものであり、整数値が表すことができる最大数とは関係ありません。
スタックとヒープはどこにありますか?を参照してください。2つのメモリ割り当て領域間の説明。さらに、必ずしもお勧めするわけではありませんが、VisualC++でスタックサイズを変更する方法について説明しているスレッドを次に示します。