1

我想知道如何通过这样的指针访问 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];
    }
}
4

2 回答 2

1

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

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

int (*cc_i)[2] = ccc[i];
于 2013-11-08T12:07:36.050 回答
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];
    }
}
于 2013-11-08T12:06:55.500 回答