c++ - 如何在 C++ 中分配一个二维指针数组

标签 c++ pointers allocation multidimensional-array

我正在尝试使指针指向二维指针数组。语法是什么?如何访问元素?

最佳答案

按照法律规定,方法如下:

// Create 2D array of pointers:
int*** array2d = new (int**)[rows];
for (int i = 0; i < rows; ++i) {
  array2d[i] = new (int*)[cols];
}

// Null out the pointers contained in the array:
for (int i = 0; i < rows; ++i) {
  for (int j = 0; j < cols; ++j) {
    array2d[i][j] = NULL;
  }
}

注意删除包含的指针、行数组和列数组,并按正确的顺序分别删除。

但是,在 C++ 中,您更频繁地创建一个在内部管理一维指针数组的类并重载函数调用运算符以提供二维索引。这样你就真的有一个连续的指针数组,而不是一个指针数组。

关于c++ - 如何在 C++ 中分配一个二维指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1768294/

相关文章:

c - 如何动态分配 'typedef struct' 元素的数组?

c++ - 嵌入式 Boost::Python 和 C++:并行运行

c++ - 构造函数委托(delegate)如何与非静态数据成员初始化交互?

c++ - 这个指向非静态成员函数代码的指针不起作用的原因是什么?

c++ - 源文件中的 Typedef 私有(private)结构原型(prototype)

c++ - 为什么 C++ 中不存在对成员的引用?

ios - IOS 上的图像缓存

c - Malloc 不创建内存

c++ - 为什么在此代码中忽略了析构函数?

c++ - 如何执行和写入标准输入并将标准输出通过管道传输到套接字?