【问题标题】:Runtime Error in C++ 14 due to 2D array declaration由于 2D 数组声明,C++ 14 中的运行时错误
【发布时间】:2019-10-05 08:04:32
【问题描述】:

你能告诉我为什么会出现运行时错误吗?

#include <iostream>
#include <stdio.h>
#define lld long long int
#define size 10000
using namespace std;
static int matrix[size][size];

【问题讨论】:

  • 错误是什么?
  • 当 size 远小于 10000 时会报错吗?
  • gcc 编译时使用标志-std=c++14没有错误
  • 无关,但不要使用是C++程序,使用

标签: c++ c++14


【解决方案1】:

int matrix[size][size]; 使用自动内存,由于矩阵中的10000 * 10000 元素,您刚刚用完了它。如果您需要如此大的矩阵,则必须使用动态内存或使用动态内存的容器,例如std::vector:

vector<vector<int>> matrix(size, vector<int>(size, 0));

【讨论】:

    【解决方案2】:

    由于二维数组的内存大小限制,我们无法创建具有该大小的数组。 解决方案:

    vector<pair<int , int>> matrix;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多