有一个类似的话题。 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]
那又怎样?
答案 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;