我在 Microsoft Visual Studio Express 2012 中编译了以下 C 程序:
int main() {
int a[300000];
return 0;
}
这会因 msvcr110d.dll!__crtFlsGetValue() 中的堆栈溢出而崩溃。
如果我将数组大小从 300,000 更改为 200,000,它可以正常工作(因为这个简单的程序可以说是“工作”,因为它什么都不做)。
我在 Windows 7 上运行,并且还在 Cygwin 下使用 gcc 进行了尝试,它产生了相同的行为(在这种情况下是 seg 错误)。
有没有搞错?