我有点懵。有两种方法可以从方法返回数组。第一个建议如下:
typedef int arrT[10];
arrT *func(int i);
但是,我如何捕获一个 int (*)[] 类型的返回值?
另一种方式是通过引用或指针:
int (*func(int i)[10];
或
int (&func(int i)[10];
返回类型是 int (*)[] 或 int (&)[]。
我遇到的问题是如何分配一个变量来接受该点,并且我继续收到如下错误:
can't convert int* to int (*)[]
知道我做错了什么或我的知识不足吗?
最佳答案
如果要按值返回数组,请将其放入结构中。
标准委员会已经这样做了,因此您可以使用 std::array<int,10>
.
std::array<int,10> func(int i);
std::array<int,10> x = func(77);
这也使得通过引用返回变得非常简单:
std::array<int,10>& func2(int i);
std::array<int,10>& y = func2(5);
关于c++ - 返回一个数组......而不是一个数组的引用或指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14045951/