函数为什么调用错误,怎么办,先谢谢大家帮忙了
#define MAX_VERTEX_NUM 20
int Floyd(ArcNode** d,int** path,AdjMatrix *G) /*弗洛伊德算法*/
{
int n=G->vexnum;
int i,j,k;
d=new ArcNode *[n];path=new int*[n];
for(i=0;i<n;i++)
{
d[i]=new ArcNode[n];path[i]=new int[n];
for(j=0;j<n;j++)
{
d[i][j].adj=G->arcs[G->vexnum][G->vexnum].adj;
if(i!=j&&d[i][j].adj<INFINITY)path[i][j]=i;
else path[i][j]=-1;
}
}
for(k=0;k<n;k++)
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(d[i][k].adj+d[k][j].adj<d[i][j].adj)
{
d[i][j].adj=d[i][k].adj+d[k][j].adj;
path[i][j]=path[k][j];
}
return 1;
}
void main()
{
/*G是有向矩阵*/
ArcNode d[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
int path[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
Floyd(d,path,&G);
}
错误提示为调用错误:cannot convert parameter 1 from 'struct ArcNode [20][20]' to 'struct ArcNode ** '
这是为什么呀?怎么办,谢谢大家