多维数组问题

use*_*132 1 c++ arrays

好吧基本上我希望这个代码让用户每次都输入一个值到数组中,然后他们可以指定行数和列数.我想我的问题是,每次用户输入值时,它进入正确的列,但也进入两行,所以最后它只打印出用户在所有行中输入的最后一批数字.

很抱歉,如果这很难理解,因为这是我在本网站的第一篇文章,你可能会说我只是在学习c ++.所以,如果你能提供帮助,我们将不胜感激.

#include <iostream>

using namespace std;

int main()
{
    int row;
    int column;
    int value[row][column];
    cout << "How Many Rows?\n";
    cin >> row;
    cout << "How Many Columns\n";
    cin >> column;
    for(int x = 0; x<row; x++) {
        for(int y = 0; y<column; y++) {
            cout << "Enter Value Now\n";
            cin >> value[x][y];
        }
        cout << endl;
    }
    cout << endl;
    for(int a = 0; a < row; a++) {
        for(int b = 0; b < column; b++) {
            cout << value[a][b] << " ";
        }
        cout << endl;
    }
}
Run Code Online (Sandbox Code Playgroud)

sim*_*onc 5

int value[row][column];
Run Code Online (Sandbox Code Playgroud)

声明一个数组,其维度基于2个未初始化的值.

如果您不必使用C风格的数组,则可以使用

std::vector<std::vector<int>> value;
Run Code Online (Sandbox Code Playgroud)

并根据用户输入选择尺寸.

或者,如果您分配它,可以继续使用C风格的数组

int** value;
// input row/column
value = new int*[row];
for (int i=0; i<row; i++) {
    value[i] = new int[column];
}
Run Code Online (Sandbox Code Playgroud)

如果使用后一种方法,请确保delete以后所有动态分配的内存.