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

How to correctly fill 2D array in C++ using user input?

本文关键字:填充 2D 数组 C++ 何使用 用户 输入      更新时间:2023-10-16

我正试图用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<<" ";
}
}

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

为了简单起见,让我们忽略内存分配。你的代码应该是这样的:

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数组中,它是如何变为array[ROW][COLUMN]的。因此,您希望有一个双for循环,列++在行++的整个for循环之后。看起来您有一个数组[COLUMN][ROW],这就是它不能正常工作的原因。