通常,我有一个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身份工作。感谢。
答案 0 :(得分:0)
您需要添加尺寸;
int (*r)[n][n]=(int (*)[n][n])x;