如何在具有动态边界的情况下通过引用传递多维数组?

时间:2013-02-12 15:06:35

标签: c++

我有一个int数组myArray [x] [y],我希望通过引用将它传递给函数,但它似乎需要常量边界或一些奇数指针解决方法?我该怎么做呢?

2 个答案:

答案 0 :(得分:0)

具有自动存储持续时间的数组始终需要编译时常量限制。您可以执行int array[x]; x其中std::vector不是GCC中的编译时常量的事实仅仅是一个非可移植的扩展。实际上,您无法通过引用函数来传递这样的非标准数组。

您可以将边界与数组一起传递,但最好使用标准容器,例如{{1}}。

答案 1 :(得分:0)

尝试:

template<int X, int Y>
void ArrayFn( int (&in)[X][Y] )
{
    in[X-1][Y-1] = 666; // or whatever
}

并称之为:

int arr[3][3];
ArrayFn( arr );