0

通常,我有一个 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 中工作。谢谢。

4

1 回答 1

0

您需要添加一个维度;

int (*r)[n][n]=(int (*)[n][n])x;
于 2013-09-01T21:41:33.513 回答