如果我可以传递已知大小的数组:
void fn(int(*intArray)[4])
{
(*intArray)[0] = 7;
}
为什么我不能退货:
int intArray[4] = {0};
int(*)[4] fn()
{
return &intArray;
}
此处,“(*)”中的“)”生成“语法错误:””。
最佳答案
[4]
在函数名之后,就像在变量定义中在变量名之后:
int (*fn())[4]
{
return &intArray;
}
由于这是一种非常晦涩的语法,容易使阅读它的每个人感到困惑,因此,如果您没有特殊的理由必须将其作为指向数组的指针,则建议将数组作为简单的
int*
返回。您还可以使用typedef简化函数定义:
typedef int intarray_t[4];
intarray_t* fn() { ... }
关于c++ - 在C++中返回已知大小的数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3005527/