如何修改它以使用3D数组?

时间:2013-08-30 15:02:37

标签: arrays multidimensional-array function-pointers variadic-functions

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

1 个答案:

答案 0 :(得分:0)

您需要添加尺寸;

int (*r)[n][n]=(int (*)[n][n])x;