无法直接从函数返回一个数组。但是,可以让函数返回一个纸箱任何数据结构的指针,当然也可以是一个纸箱数组的指针。记住,声明必须在使用之前。一个声明的例子是:
int (*paf())[20];
这里,paf是一个函数,他返回一个指向包含20个int 元素的数组的指针。它的定义可能如下:
int (*paf())[20]
{
int (*pear)[20];
pear = calloc(20,sizeof(int));
if(!pear) longjmp(error,1);
return pear;
}
你可以用下面这样的方法来调用函数:
int (*result)]20];//声明一个指向包含20个int元素的数组的指针
..
result = paf();//调用函数
(*result)[3]= 12;//访问结果数组