Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;分割故障的迷宫求解算法_C++ - Fatal编程技术网

C++ C++;分割故障的迷宫求解算法

C++ C++;分割故障的迷宫求解算法,c++,C++,任务是创建一个随机生成的迷宫,然后解决它,问题是每当我递归地搜索迷宫中的出口时,我在运行时会得到一个分段错误。大部分cout用于调试 主文件(错误仍然存在的位置) #包括 #包括 #包括 #包括“Main.h” #包括“Maze.h” int main(int argc,char*argv[]) { //处理命令行参数并为随机数设定种子 //发电机,如有必要 无符号整数种子; 如果(argc==4) { 种子=静态_投射(atoi(argv[1]); 问题是: bool **wasHere;

任务是创建一个随机生成的迷宫,然后解决它,问题是每当我递归地搜索迷宫中的出口时,我在运行时会得到一个分段错误。大部分cout用于调试

主文件(错误仍然存在的位置)

#包括
#包括
#包括
#包括“Main.h”
#包括“Maze.h”
int main(int argc,char*argv[])
{
//处理命令行参数并为随机数设定种子
//发电机,如有必要
无符号整数种子;
如果(argc==4)
{
种子=静态_投射(atoi(argv[1]);
问题是:

bool **wasHere;

for(int i = 0; i < theMaze.getHeight(); i++)
{
    for(int j = 0; i < theMaze.getWidth(); j++)
    {
        wasHere[i][j] = false;
bool**wasHere;
对于(int i=0;i
原因是:
wasHere
是指向
bool
的指针的未初始化指针。然后取消对第一个指针的引用,导致未定义的行为(例如崩溃…).

seg故障发生在哪一行代码上?此外,您的代码不包含
delete
语句,因此可能会泄漏内存。使用向量。如果启用边界检查,它们甚至可能捕获您的错误。使用
cerr
调试消息。
cout
会被缓冲,因此在崩溃之前发送的消息可以保持不被释放对输出进行重新编译。
cerr
流没有此问题。更好的方法是使用调试器并在崩溃后进行回溯。但是对于调试消息,有时很有用,请使用
cerr
。第5行是
#包括“Maze.h”这是不对的。请标出这行。@ Soosisie代码> BoOL *在这里;<代码>…代码> WAY[i] [j]=false < /COD>——什么时候它变成了2维数组的<代码> BoOL/COD>?我不太理解这个概念,因为我对C++编程很陌生。
bool **wasHere;

for(int i = 0; i < theMaze.getHeight(); i++)
{
    for(int j = 0; i < theMaze.getWidth(); j++)
    {
        wasHere[i][j] = false;