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