【发布时间】:2012-12-12 07:52:38
【问题描述】:
我有点困惑。从方法返回数组有两种方法。第一个建议如下:
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 (*)[]
知道我做错了什么或者我缺乏什么知识吗?
【问题讨论】:
-
函数原型中的括号不匹配。
-
您似乎不小心设置了函数指针。那是你想做的吗?
-
如果你不想要一个 C++ 结构,只需要一个普通的 C 数组,那么:"int* array (int* size); int size = 0; int* arr = array (&size); "
-
在可能的情况下不要忘记接受答案。您还应该考虑接受其他问题的答案。