深度遍历的迷宫问题,为什么会报错

为什么这样报错

#include
#include
using namespace std;
int n,m;
string maze[110];
bool vis[110][110];
bool in(int x,int y)
{
    return 0<=x&&x0<=y&&yint dir[4][2]={{-1,0},{0,-1},{1,0},{0,1}};
bool dfs(int x,int y)
{
    if(maze[x][y]=='T')
    {
        return true;
    }
vis[x][y]=1;
maze[x][y]='m';
for(int i=0;i<4;i++)
{
    int tx=x+dir[i][0];
    int ty=y+dir[i][1];
    if(in(tx,ty)&&maze[tx][ty]!='*'&&!vis[tx][ty])
    {
        if(dfs(tx,ty))
        {
            return true;
        }
    }
    
}
vis[x][y]=0;
maze[x][y]='.';
return false;
int main()
{
        cin>>n>>m;
    for(int i=0;i>maze[i];
    }
    int x,y;
    for(int i=0;ifor(int j=0;jif(maze[i][j]=='S')
                {
                    x=i;
                    y=j;
                }
            }
    }
    if(dfs(x,y))
    {
        for(int i=0;i