C语言与指针相关代码错误求解答

问题遇到的现象和发生背景

编到这实在是想不出来了,希望解答

问题相关代码,请勿粘贴截图

#define _WIN64
#include<stdio.h>
#include<malloc.h>
#define NULL
#define TURE 1
#define OK 1
#define FLASE 0
#define Error -1
#define MAX 100
#define INFINITY 32768

typedef char vertex;

typedef struct
{
char vertex[100];
int arcs[100][100];
}AMGraph;

void Create(AMGraph *s,int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",s->arcs[i][j]);
}
}
}

void DepthFirstSearch(AMGraph *s,int visit[],int n,int i)
{
int k;
visit[i]=1;
for(k=0;k<n;k++)
{
if(!visit[k]&&s->arcs[i][k]==1)
{
DepthFirstSearch(&s,visit,n,k);
}
}
}

void MakeVisit(AMGraph *s,int visit[],int n)
{
int i,flag=0;
for(i=0;i<n;i++)
visit[i]=0;
for(i=0;i<n;i++)
{
if(!visit[i])
{
flag++;
DepthFirstSearch(&s,visit,n);
}
}
printf("%d",flag);
}

int main()
{
int n,visit[100];
AMGraph s=NULL ;
s=(AMGraph
)malloc(sizeof(AMGraph));
scanf("%d",&n);
Create(&s,n);
MakeVisit(&s,visit,n);

}

运行结果及报错内容
        error C2198: 'DepthFirstSearch' : too few actual parameters

问题出现在dfs中的dfs那句

我的解答思路和尝试过的方法

改了好几个与输入有关的地方

我想要达到的结果

怎么样能不错就行,最好可以讲一下为什么会这样子

修改处见注释,供参考:

//#define _WIN64  修改
#include<stdio.h>
#include<malloc.h>
#define NULL 0
#define TURE 1
#define OK 1
#define FLASE 0
#define Error -1
#define MAX 100
#define INFINITY 32768

typedef char vertex;

typedef struct
{
    char vertex[100];
    int arcs[100][100];
}AMGraph;

void Create(AMGraph* s, int n)
{
    int i, j;
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < n; j++)
        {
            scanf("%d", &s->arcs[i][j]);//修改
            //scanf("%d", s->arcs[i][j]);
        }
    }
}

void DepthFirstSearch(AMGraph* s, int visit[], int n, int i)
{
    int k;
    visit[i] = 1;
    for (k = 0; k < n; k++)
    {
        if (!visit[k] && s->arcs[i][k] == 1)
        {
            DepthFirstSearch(s, visit, n, k); //修改
            //DepthFirstSearch(&s, visit, n, k);
        }
    }
}

void MakeVisit(AMGraph* s, int visit[], int n)
{
    int i, flag = 0;
    for (i = 0; i < n; i++)
        visit[i] = 0;
    for (i = 0; i < n; i++)
    {
        if (!visit[i])
        {
            flag++;
            DepthFirstSearch(s, visit, n, i);//修改
            //DepthFirstSearch(&s, visit, n);
        }
    }
    printf("%d", flag);
}

int main()
{
    int n, visit[100];
    AMGraph* s = NULL;     //AMGraphs = NULL;修改
    s = (AMGraph*)malloc(sizeof(AMGraph));
    scanf("%d", &n);
    Create(s, n);  //Create(&s, n);修改
    MakeVisit(s, visit, n);//MakeVisit(&s, visit, n);修改
}