Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 当多维数组具有动态边界时,如何通过引用传递它?_C++ - Fatal编程技术网

C++ 当多维数组具有动态边界时,如何通过引用传递它?

C++ 当多维数组具有动态边界时,如何通过引用传递它?,c++,C++,我有一个int数组myArray[x][y],我希望通过引用将其传递给一个函数,但它似乎要么需要常量边界,要么需要一些奇数指针解决方法?如何正确执行此操作?具有自动存储持续时间的数组始终需要编译时常量边界。事实上,你可以做int数组[x]

我有一个int数组myArray[x][y],我希望通过引用将其传递给一个函数,但它似乎要么需要常量边界,要么需要一些奇数指针解决方法?如何正确执行此操作?

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

您可以随数组一起传递边界,但最好使用标准容器,如
std::vector

尝试:

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

我已经看过了,当我尝试其中包含的变量时,它似乎没有编译,这是一个简单得多的情况,但既然它是多维的,它不是向量向量吗?@user1947180是的,它是:
std::vector array(x,std::vector(y))
默认情况下是否将它们初始化为0?或者,如果您希望/需要将数组作为单个内存块,请使用单个向量并像
v[x+rowLength*y]
@user1947180那样对其进行索引是的,它会这样做。
int arr[3][3];
ArrayFn( arr );