gpt4 book ai didi

c++ - 使用 iostream 和指针获取段错误

转载 作者:行者123 更新时间:2023-11-30 00:58:56 25 4
gpt4 key购买 nike

我正在尝试读取一个数据文件(一个迷宫),其中我似乎给自己编码了一个段错误,我承认我在大学里对动态分配的讲座感到厌烦,并且已经搜索了我的问题透彻,无济于事。 这是我的代码片段:

void MazeClass::ReadMaze(ifstream& mazedata) {
mazedata >> row >> column; // Pulls the size from the file
GetExit(mazedata); // Does the same for above, just for the Exit (Required in Class)
GetEntrance(mazedata); // Does the same, just for the entrance (Required in Class)
maze = new char*[row]; // First array of pointers for 2d array
for (unsigned i; i<row;i++)
{ // Creates the second set of arrays
maze[i]=new char[column];
}
for (int y=0;y<column;y++)
{ // Keeping the maze inside boundries (step 1)
for (int x=0;x<row;x++) // (Step 2)
{
maze[x][y]=mazedata.get(); // <--- Here is where my Seg Fault happens.
}
}

}

这是 gdb 告诉我的:

Program received signal SIGSEGV, Segmentation fault. 0x08048fe9 in MazeClass::ReadMaze (this=0xbffff524, mazedata=...) at MazeClass.cpp:36 36 maze[x][y]=mazedata.get();

提前感谢您提供的所有帮助。

既然我的代码被一个愚蠢的错误修复了,我现在可以继续解决下一个问题了:

(gdb) run
Starting program: /home/athetius/projects/code/netbeans/OLA4/a.out
Please Enter Data Filename: MyMaze2.dat


**************12142*********** ***12142*
* 12142***** * * 12142 *
* 12142 ************ 12142***
*** * 12142 ****12142****
* 12142 12142 *
* ****12142***** ** * 12142 *
* 12142 * 12142 * * *
* 12142 *******12142*** *
* 12142* ** ***12142*********
* 12142 12142
* 12142 *************12142*** *
* 12142 12142 ***** **
**12142************* 12142 * *
*12142 ******* 12142 **
12142***************12142
Program exited normally.

输出:查看 MyMaze2.dat 是:

************************* ****
* ***** * * *
* ************ ***
*** * ********
* *
* ********* ** * *
* * * * *
* ********** *
* * ** ************
*
* **************** *
* ***** **
*************** * *
* ******* **
******************************

最佳答案

在行for (unsigned i; i<row;i++)开始你的第一个for循环,你不初始化 i .尝试 unsigned i=0; .这可能无法解决所有问题,但这是一个开始 :)

关于c++ - 使用 iostream 和指针获取段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5288063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com