3D多维数组到“行”指针

时间:2013-11-08 12:04:33

标签: 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];
    }
}

2 个答案:

答案 0 :(得分:1)

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

然而,您可以申报cc_i作为指向数组的指针,如

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

答案 1 :(得分:0)

喜欢这个

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

for(int i=0;i<8;i++)
{
    int (*cc_i)[2] = 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];
    }
}