c++ - 3D多维数组到 "row"指针

标签 c++ arrays pointers

我想知道如何通过这样的指针访问 3D 中的多维行:

int ccc[8][7][2] = ....;

for(int i=0;i<8;i++)
{
    int** cc_i = ccc[i];
    for(int j=0;j<7;j++)
    {
        int* c_j = cc_i[j];
        int th0 = c_j[0];
        int th1 = c_j[0];
    }
}

最佳答案

你不能,因为指向指针的指针与数组的数组不同。内存中的布局完全不同。

但是您可以声明例如cc_i 作为指向数组的指针,例如

int (*cc_i)[2] = ccc[i];

关于c++ - 3D多维数组到 "row"指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19858707/

相关文章:

c - C 中棘手的段错误

c++ - 在 Windows 上使用 QT 5.6 构建 QtWebKit

c++ - 来自继承结构的本地声明无法识别

c++ - 为什么 getservbyname 不返回正确的端口号?

c++ - 通过引用线程传递数组的问题

无法用函数指针填充 double 组

c++ - C++中优先队列的实现

c++ - 如何在一个数组中存储两个整数 (C++)

c++ - "SafeArray"指针的

c++ - 表达式必须具有指向类类型的指针