-2

我有一个 int 数组 myArray[x][y] 并且我希望通过引用将它传递给一个函数,但它似乎需要常量边界或一些奇怪的指针解决方法?我该如何正确地做到这一点?

4

2 回答 2

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 );
于 2013-02-12T15:24:37.037 回答
0

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

您可以将边界与数组一起传递,但使用标准容器(例如std::vector.

于 2013-02-12T15:12:21.470 回答