大佬们能不能告诉我为啥我的代码dfs函数运行报错啊
#include <stdio.h>
int a[30][30], flag, n;
void dfs(int x, int y)
{
if (x == 0 || y == 0 || x == n - 1 || y == n - 1)
{
flag = -1;
}
else
{
if (a[x - 1][y] != 1) dfs(x - 1, y);
if (a[x + 1][y] != 1) dfs(x + 1, y);
if (a[x][y + 1] != 1) dfs(x, y + 1);
if (a[x][y - 1] != 1) dfs(x, y - 1);
}
}
int main()
{
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
scanf("%d", &a[i][j]);
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (a[i][j] != 1)
{
a[i][j] = 2;
}
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (a[i][j] != 1)
{
flag = 0;
dfs(i, j);
if (flag == -1)
{
a[i][j] = 0;
}
}
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
printf("%d", a[i][j]);
}
printf("\n");
}
}