返回多维数组c ++

时间:2015-08-06 21:39:23

标签: c++ function multidimensional-array return

我想创建一个返回C风格多维数组的函数 int mArray[2][2]; int[][] mArray getArray();

所以这不起作用,我也不知道为什么。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:5)

来自[dcl.funct]:

  

函数不应具有类型数组或函数的返回类型,尽管它们可能具有类型指针的返回类型或对此类事物的引用。虽然可以有函数指针数组,但是不应该有函数数组。

但是,您可以返回std::array代替:

std::array<std::array<int, 2>, 2> getArray();

答案 1 :(得分:2)

您不能按值返回数组,因为它们不会隐式复制(因为标准会这样说)。您应该使用std::array代替:

std::array<std::array<int,2>,2> fun();
std::array<std::array<int,2>,2> arr = fun();

现在使用C阵列的原因并不多于std::array,其中最常见的可能是#34;因为我的老师/教授/老板这么说&#34;。