通常,我有一个 nxn 2D 数组,并使用以下代码将其传递给函数:
void func(int *x, const int &n){
int (*r)[n]=(int (*)[n])x;
// I can use r now with subscript operator as usual, r[i][j] and everything works fine
}
我称之为:
int r[n][n];
func(&r[0][0],n)
因此,它允许我使用下标运算符 r[i][j] 在函数内使用任意大小的数组,而无需在每次调用函数时手动更改维度参数。我的问题是,我应该如何修改它以在 3D 中工作?该代码不友好,我不确定如何更改这部分:
int (*r)[n]=(int (*)[n])x;
在 3D 中工作。谢谢。