C++之函数返回数组
1 int* insertionSort(int datas[],int len) 2 { 3 int* temp = new int[len];// 定义一个指向数组的指针 4 int i,x; 5 6 for(int j=1;j<len;j++) 7 { 8 i = j-1; 9 x = datas[j]; 10 while(x<datas[i]&&i>=0) 11 { 12 datas[i+1]=datas[i]; 13 i=i-1; 14 } 15 datas[i+1]= x; 16 } 17 18 for(int k=0;k<len;k++) 19 { 20 temp[k] = datas[k]; 21 } 22 23 return temp;//返回该指针 24 }
在c++中是不允许数组作为函数的返回值的
int [] someFunction( ); //ILLEGAL
要想实现函数返回一个数组,那返回对应数组里面类型的指针
you must return a pointer to the array base type and have the pointer point to the array. So, the function declaration would be as follows:
int* someFunction( ); //Legal
调用
void sysout(int* data,int size)
{
for(int i=0;i<size;i++)
{
cout << data[i] << endl;
}
}