在C++中声明可变长度二维数组的正确方法

Chr*_*ian 4 c++ arrays multidimensional-array dynamic-sizing

我想得到一个二维int数组arr,我可以通过arr [i] [j]访问.

据我所知,我可以宣布int arr[10][15];获得这样一个数组.在我的情况下,大小是可变的,据我所知,如果数组的大小不是硬编码但是我使用类似的变量,这种语法不起作用int arr[sizeX][sizeY].

什么是最好的解决方法?

Som*_*ude 11

如果您不想使用std::vector向量(或新的C++ 11 std::array),则必须手动分配所有子数组:

int **arr = new int* [sizeX];
for (int i = 0; i < sizeX; i++)
    arr[i] = new int[sizeY];
Run Code Online (Sandbox Code Playgroud)

当然,完成后不要忘记delete[]所有.