一般来说C++中函数返回数组的形式是这样的:
int* test(int T[]){
int *resu=new int[2];
//int resu[2];
resu[0]=12;
resu[1]=194;
cout<<"T 的长度是:"<<sizeof(T)/sizeof(int)<<endl;
return resu;
}
int main()
{
int R[]={1,3,5,6,9};
int *rest;
cout<<"R 的长度是:"<<sizeof(R)/sizeof(int)<<endl;
rest = test(R);
delete rest;
return 0;
}
输出结果是:
R 的长度是:5
T 的长度是:1
12 194
有两点需要注意:
1,在函数中数组名只是一个指针,因此sizeof(T)==4.
2,在函数中定义返回数组时,需要给数组分配内存空间:int *resu=new int[2]。只是单纯的定义一个数组:int resu[2],是不可行的,因为这样的数组的内存会在函数调用之后丢失。
当然最后别忘记将新建的变量delete掉。