我做了一个子函数,要返回一个二维数组,所以我决定用一个二级指针来控制这个二维数组,从而返回一个二级指针。但是当我运行时,总是出错,通过运行结果得知:返回的二维数组不是想要的那个。所以我想请大家指导指导怎么能使一个二级指针控制一个二维数组。
/*这个程序是把一个邻接矩阵转化为一个可达矩阵*/
#include "stdio.h"
void main()
{
int **pa;
int i,j,k,n;
int ** linjiejuzhen();
pa=linjiejuzhen();/*接受二级指针*/ /*就在这出错了,下边没有错误*/
for(i=0;i<=4;i++)
for(j=0;j<=4;j++)
if(*(*(pa+j)+i)==1)
for(k=0;k<=4;k++)
*(*(pa+j)+k)=*(*(pa+j)+k)|*(*(pa+i)+j);
for(i=0;i<=4;i++)
{
for(j=0;j<=4;j++)
printf("%5d",*(*(pa+i)+j));
printf("\n");
}
}
/* 自动生成一个邻接矩阵,并把矩阵返回主函数中*/
int ** linjiejuzhen()
{
static int a[5][5]={0};
int i,j,x,y;
int **pp;
int * p[4];
do
{
scanf("%d%d",&x,&y);
if(x>5||y>5)
break;
i=x-1;
j=y-1;
a[i][j]=1;
}
while(1);
for(i=0;i<5;i++)
p[i]=a[i];
pp=p;
return(pp);
}