次のCプログラムをMicrosoftVisualStudioExpress2012でコンパイルしています。
int main() {
int a[300000];
return 0;
}
これは、msvcr110d.dll!__ crtFlsGetValue()のスタックオーバーフローでクラッシュします。
配列サイズを300,000から200,000に変更すると、正常に機能します(この単純なプログラムは、何も実行しないため、「機能する」と言えます)。
私はWindows7で実行しており、Cygwinでgccを使用してこれを試しましたが、同じ動作が発生します(この場合はセグメンテーション違反)。
一体何?