需要动态申请数组且返回,堆栈上面的数组是不能直接返回的会在函数退出的时候销毁掉
#include<stdio.h>int **returnNum()
{
int **a,i,j;
a = (int**)malloc(5*sizeof(int*));
for(i=0;i<5;++i)
{
a[i] = (int*)malloc(5*sizeof(int));
for(j=0;j<5;++j)
{
a[i][j]=i;
}
}
return a;
//error: cannot convert `int (*)[5]' to `int**' in return
}
int main()
{
//int cpy[5][5]=returnNum; // error: invalid initializer
int **cpy=returnNum();
int i,j;
for(i=0;i<5;++i)
{
for(j=0;j<5;++j)
{
printf("%d ", cpy[i][j]);
}
printf("\n");
free(cpy[i]);
}
free(cpy);
return 0;
}