【问题标题】:How do I declare MULTIPLE 2d arrays in C++ using new?如何使用 new 在 C++ 中声明 MULTIPLE 2d 数组?
【发布时间】:2016-01-24 02:21:24
【问题描述】:

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

我要做的是根据某个整数创建多个二维数组,该整数确定应该有多少个二维数组。

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

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

在我的项目中,二维数组必须有 2000 列,但首先未确定行大小。它将由用户提供。假设你已经得到它 [rowsUsed]

那又怎样?

【问题讨论】:

  • 我建议你使用向量来避免内存泄漏和其他令人头疼的问题。

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


【解决方案1】:

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

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

然后你可以为每个 X

【讨论】:

    猜你喜欢
    • 2021-04-07
    • 1970-01-01
    • 2017-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多