在不知道大小的情况下获得二维数组

时间:2018-01-06 15:27:22

标签: c++ arrays pointers

我是使用指针的新手,我遇到了问题。 我必须从用户那里获得一个2D数组字符,并且用户会给我行数和列数以及应该填充的数组。

    int rows,col,i,j;
    char **array;
    int *storage;
    cin >> rows >> col;
    array = new *int[rows];
    storage = new int[rows*col];
    for (int i = 0; i < rows; ++i)
        array[i] = storage + col * i;
    for(i=0;i<rows;i++){
        for(j=0;j<col;j++){
            cin>>array[i][j];}
    }

我为它编写了上面的代码,但它不起作用。我试图搜索这样的东西,但我没有找到任何东西。 你可以帮我修一下这段代码的错误吗?

1 个答案:

答案 0 :(得分:0)

数组是静态的,所以请使用vector而不是std:vector它是动态的,以便 您可以在运行时放大矢量的大小。