Clion退出代码-1073741571(0xC00000FD)

时间:2018-10-26 12:44:14

标签: c++ clion

我在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;
}

我测试了它,并由于以下原因找到了它:

int arr[30007][5];

2天前,在小于1.000.000 的数组声明中我没有问题,现在出现了此错误。 我在《 Clion》中什么也没改变。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

错误号0xC00000FD代表“堆栈溢出”(我想您的平台是Windows)。在Windows下,局部变量在堆栈上分配(与其他大多数平台一样),int arr[30007][5]很大(30007 * 5 * 4 = 600140字节),堆栈通常很小(通常约为1 Mb,也是平台)依赖)

您有很多选择:

  1. 使用std::vector代替原始数组(首选)
  2. 将数组声明为静态(static int arr[30007][5];),然后它将不再驻留在堆栈中
  3. 增加可执行文件的堆栈大小。这高度依赖平台/过于依赖。
  4. 动态分配数组