如何使用用户输入在C ++中正确填充2D数组?

时间:2018-11-02 15:16:32

标签: c++ arrays

我试图用C ++制作2D数组并用用户输入填充它,但是一旦我开始输入值,程序就停止给我“处理结束,退出代码为-1073741819(0xC0000005)”

double ** array = new double*[col];
for( i=0;i< col; i++){
    array[i] = new double [row];
}


for(i1=0;i1<row;i1++){
    for(j=0;j<col;j++){
        cin>> n;
        array[i1][j] = n;
    }
}

for(i1=0;i1<row;i1++){
    cout<<" "<<endl;
    for(j=0;j<col;j++){
        cout<< array[i1][j];
        cout<<" ";

    }
}

有什么办法解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

为简单起见,让我们忽略内存分配。您的代码应如下所示:

int val;
  int max = 16;
  int arr[max][max];

  for(int i = 0; i < max; i++){
      for(int j = 0; j < max; j++){
        cin >> val;
        arr[j][i] = val;
      }
  }

请注意在2D数组中数组[ROW] [COLUMN]的情况。因此,您希望有一个双for循环,而column ++紧跟着row ++的整个for循环。看来您有array [COLUMN] [ROW],这就是为什么它无法正常工作的原因。