【作业】二级指针做输出(在被调函数中分配空间,主调函数中使用)
#include<iostream>
using namespace std;
char** sort(char Arr1[][10],int num1,char **Arr2,int num2)
{
int len = num1+num2;
char** Arr3 = (char **)malloc(sizeof(char*)*len);
for(int l=0;l<len;l++)
{
Arr3[l] = (char*)malloc(sizeof(char)*100);
memset(Arr3[l],0,sizeof(char)*100);
}
int i=0;
int j=0;
for(i=0;i<num1;i++)
{
strcpy(Arr3[i],Arr1[i]);
}
for(j=0;j<num2;j++)
{
strcpy(Arr3[i+j],Arr2[j]);
}
for(int m=0;m<len;m++)
{
for(int n=m+1;n<len;n++)
{
if(strcmp(Arr3[m],Arr3[n])>0)
{
char *ch=NULL;
ch = Arr3[m];
Arr3[m] = Arr3[n];
Arr3[n] = ch;
}
}
}
return Arr3;
}
void print_Arr(char **Arr3,int num)
{
for(int i=0;i<num;i++)
{
cout<<Arr3[i]<<endl;
}
}
void free_Arr(char** Arr,int num)
{
for(int i=0;i<num;i++)
{
if(Arr[i]!=NULL)
{
free(Arr[i]);
Arr[i]=NULL;
}
}
free(Arr);
Arr=NULL;
}
int main()
{
char** Arr3 = NULL;
char Arr1[][10] = {"Cc","DD","AA","FF","BBB"};
char *Arr2[10] = {"QQQ","BBBB","HHHHH"};
Arr3 = sort(Arr1,5,Arr2,3);
print_Arr(Arr3,8);
free_Arr(Arr3,8);
getchar();
}