求助 为什么DFS为runtime error?
#include<bits/stdc++.h>
using namespace std;
int n, m;
int a1, b1;
int a2, b2;
int t[110][110];
int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, -1, 0, 1};
char s;
int ans;
void dfs(int a, int b){
if (t[a][b] == 0) return ;
t[a][b] = 0;
for (int i = 0; i < 4; i++){
if (t[a + dx[i]][b + dy[i]] != 0)
dfs(a + dx[i], b + dy[i]);
}
}
int main(){
scanf("%d %d", &n, &m);
for (int i = 0; i <= 110; i++)
for (int j = 0; j <= 110; j++)
t[i][j] = 0;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++){
cin >> s;
if (s == '0') t[i][j] = 0;
else t[i][j] = 1;
}
for (int i = 1; i <= n; i++)
for (int j= 1; j <= m; j++){
if (t[i][j] != 0){
ans ++;
dfs(i, j);
}
}
printf("%d", ans);
return 0;
}