c++ - C/C++ Arrays 多维数组

标签 c++ c arrays pointers multidimensional-array

我正在尝试创建一个包含两个二维数组的数组,如下所示

给定

char twoDArr[2][3] =  {{'a','b','c'},  {'d','e','f'}};

你可以做

char (*twoDArrP)[3] = twoDArr;

在以下方面产生有效结果:

cout << "twoDArr: " << twoDArr[1][2] << endl;
cout << "twoDArrP: " << twoDArrP[1][2] << endl;

我的目标是创建另一个(静态)数组和/或指针,如下所示

char (**threeDArr)[3] = {twoDArr, twoDArr}; //doesn't compile 

这样我就可以访问它的值:

char val = threeDArr[0][1][2];

显然指数会有所不同

问题是声明 3D 数组(即 2D 数组的数组)的正确方法是什么?

我已经搜索了一个使用这个案例的例子,但我似乎找不到任何东西。任何帮助将不胜感激。

最佳答案

你需要

char (*threeDArr[2])[3] = {twoDArr, twoDArr};

对于您的解决方案,“最内层”规范是 * 而不是数组。

关于c++ - C/C++ Arrays 多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11885013/

相关文章:

c++ - boost lexical_cast <int> 检查

C++ 语法 : void CLASS functionName()?

c++ - 在 C/C++ 中使用带有 GPGME 的特定公钥验证 GPG 签名

C:引用编译器实现的数组元素是否特定?

C 可执行文件可以在所有操作系统上运行吗

c - 输入退出条件后陷入死循环。

c++ - 如何将指针作为数组参数传递?

c++ - 使用非固定整数(int、long)而不是固定大小的整数(int64_t、int32_t)有什么好处吗?

arrays - 使用 case 语句时,SQL Server 2016 FOR JSON PATH 返回字符串而不是数组

c++ - 如何在基类构造函数中使用派生类成员