我具有此功能来解决C ++中的迷宫问题,但是当我运行该程序时,在递归中遇到了错误访问错误。我认为这可能是一个无限循环。我不知道哪里出了什么问题。

bool Solve_Maze(int coorx,int coory) {
    if((Map[coorx][coory]==Start)||(Map[coorx][coory]==path)) {
        Map[coorx][coory]=wall;
        Solve_Maze(coorx+1,coory);
        Solve_Maze(coorx-1,coory);
        Solve_Maze(coorx,coory+1);
        Solve_Maze(coorx,coory-1);
    }else if(Map[coorx][coory]==End) {
        cout<<"You Solved the Maze!"<<endl;
        delete Map;
        return(true);
    }
}

最佳答案

1)您不会在if语句中返回任何值
2)Map [coorx] [coory]在所有函数调用中始终分配给wall。wall是否指的是全局状态?

10-06 04:55