データファイル(迷路)を読み込もうとしていますが、私は自分自身をsegフォルトにコード化しているようですが、私は大学で講義に病気だったと認めますダイナミックアロケーションについて説明し、私の問題を完全に探し求めました。ここ は、コードの私の抜粋です:ここではiostreamとポインタを使ってSegフォルトを取得する
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が私に語ったものです:
プログラムは、信号SIGSEGV、セグメンテーションフォールトを受けました。 MazeClass :: ReadMazeの0x08048fe9(this = 0xbffff524、mazedata = ...)MazeClass.cpp:36 36 maze [x] [y] = mazedata.get();
ありがとうございました。
今私のコードは愚かな過ちによって固定されていることを、私は今、次の問題に進むことができています: ビューMyMaze2.datのビーイング:の出力で
(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.
************************* ****
* ***** * * *
* ************ ***
*** * ********
* *
* ********* ** * *
* * * * *
* ********** *
* * ** ************
*
* **************** *
* ***** **
*************** * *
* ******* **
******************************
ハ、それは働いた。私はそれを見落としました、今私は何かファンキーなものを得ています。 – Athetius
新しい質問をしたことがあれば、もっと運があるかもしれません。質問に回答がないときは、もっと多くの人がそれに惹かれます。実際に迷路を印刷するコードを投稿することもできます。私は助けてくれるとうれしいです。 – dappawit