如何使用new在C ++中声明MULTIPLE 2d数组?

时间:2015-10-24 17:23:29

标签: c++ arrays multidimensional-array dynamic-memory-allocation

有一个类似的话题。 How do I declare a 2d array in C++ using new?

我想要做的是根据某个整数创建多个2d数组,这个数组决定了应该有多少个2d数组。

我想首先为指针创建一个单维数组,并使用new来协助指向多维数组的每个指针。但似乎你不能要求内存来创建多维数组。为什么我们不能写:

int** howManyPointers = new int*[translate];
for (int i = 0; i < translate; i++){
        howManyPointers[i] = new char[rowsUsed][2000];
    }

在我的项目中,2d数组必须有2000列,但行大小首先是未确定的。它将由用户给出。假设您已经获得[rowsUsed]

那又怎样?

1 个答案:

答案 0 :(得分:0)

您分配指针数组,然后为每个指针分配1d数组,如下所示:

int** 2dArray = new int*[rows];
for (int i = 0; i < rows; ++i) {
    2dArray[i] = new int[cols];
}

然后你可以为每个X&lt; 2&lt; X&lt;行和Y <的cols;