【发布时间】:2017-05-27 15:19:28
【问题描述】:
我们如何从函数返回复杂的数据类型,例如指向 int 数组的指针?
考虑下面的(非编译)代码:
int (*) [50] fcreate()
{
int (*p) [50]= new int[60][50];
return p;
}
为什么它不起作用?
Error:
Expected un-qualified id before '(' in :
int (*) [50] fcreate();
【问题讨论】:
-
为自己省点麻烦,将数组包装在一个类型中,并确保该类型正确拥有内存(如智能指针),更好的是,使用向量并提供一个接受 2 个索引的访问器(和/或 1 个索引)。
-
语法是
int(*fcreate())[50] { //... }。这是一个不带参数并返回指向 int[50] 的指针的函数。 -
先学点指针和数组
-
指针既动态又危险。首先了解他们
-
很抱歉成为初学者...谢谢@Deidei
标签: c++ pointers return-value function-pointers return-type