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