我正在尝试创建一个包含两个二维数组的数组,如下所示
给定
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/