从c ++中的函数返回二维数组

时间:2010-11-13 10:28:22

标签: c++

  

可能重复:
  C++ Returning multidimension array from function

如何从c ++中的函数返回二维数组?

4 个答案:

答案 0 :(得分:2)

struct MyArray
{
    int arr[8][8];
};

MyArray getMyArray() {
    MyArray arr = {};
    // ...
    return arr;
};

答案 1 :(得分:1)

使用std::vector <std::vector<T> >而不是使用C样式数组。

例如:

typedef std::vector<std::vector <int> > VVector;

VVector func()
{
    VVector abc;
    //push_back and stuffs
    return abc;
}

答案 2 :(得分:-1)

您必须将其作为return **arr

返回

答案 3 :(得分:-4)

使用STL向量或其他STL容器是一种方法。

另一种方法是返回指向指针的指针,因为2维“数组”只不过是指向指针的指针所以在实践中它看起来像这样

int **func_return()
{
    int **ppArray = NULL;
   ....do stuff here....

    return ppArray;
}

注意:在99%的情况下,您必须知道数组的大小,因此您还必须返回数组的实际大小。为此,您可以使用函数参数,例如

 int **func_return(std::size_t &xsize, std::size_t &ysize)
 {
        int **ppArray = NULL;
       ....do stuff here....

        return ppArray;
  }
相关问题