我在 clion 中得到一个奇怪的退出代码:
退出代码-1073741571 (0xC00000FD)
这是我的代码:
int main()
{
std::cin.sync_with_stdio(false);
std::cin.tie(nullptr);
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
int n = 0, i = 0, j = 0;
int arr[30007][5];
for (i = 1; i <= 30000; i++)
arr[0][i] = 1;
//...
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我测试了它并发现它是因为这一行:
int arr[30007][5];
Run Code Online (Sandbox Code Playgroud)
两天前,我在声明大小小于 1.000.000 的数组时没有遇到任何问题,现在我收到此错误。我对 Clion 没有任何改变。
我应该怎么办?
错误号0xC00000FD代表“堆栈溢出”(我想你的平台是Windows)。在 Windows 下,局部变量在堆栈上分配(与大多数其他平台一样)并且int arr[30007][5]相当大(30007 * 5 * 4 = 600140 字节),并且堆栈通常相当小(通常约为 1 Mb,同样取决于平台)
你有很多选择:
std::vector而不是原始数组(首选)static int arr[30007][5];),那么它就不再驻留在堆栈上| 归档时间: |
|
| 查看次数: |
10568 次 |
| 最近记录: |