gpt4 book ai didi

c++ - 返回一个数组......而不是一个数组的引用或指针

转载 作者:太空狗 更新时间:2023-10-29 23:41:05 25 4
gpt4 key购买 nike

我有点懵。有两种方法可以从方法返回数组。第一个建议如下:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com