【问题标题】:how can I modify this to work with 3D arrays?如何修改它以使用 3D 数组?
【发布时间】:2013-08-30 15:02:37
【问题描述】:

通常,我有一个 nxn 二维数组,我使用以下代码将它传递给函数:

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 中工作。谢谢。

【问题讨论】:

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


    【解决方案1】:

    您需要添加一个维度;

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-06
      • 1970-01-01
      • 1970-01-01
      • 2019-09-23
      • 2012-11-30
      • 2015-03-28
      • 2023-03-25
      • 1970-01-01
      相关资源
      最近更新 更多