如何从c ++中的函数返回二维数组?
答案 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;
}