- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:十字方向に参照するリスト構造)
C++のリスト構造でのエラーについて
このQ&Aのポイント
- C++で2つの双方向リスト構造を持つプログラムを作成しています。
- リストに要素を追加し、順番に参照するためのコードを作成しましたが、実行するとEXEが強制終了されます。
- どこが間違っているのかわからないため、エラーの原因や改善策について教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> TEST *p = new TEST; > TuikaYoko( p ); この段階で、p->pLow が NULL になっていませんね。 その後で TuikaTate した場合は、pLow はちゃんと 値が設定されたり NULL されたりしてますけど、 TuikaYoko が連続で2回続いた場合、pLow は、NULL で初期化されずに、横に伸びてしまいます。 そうすると > for(p=list; p; p=p->pLow) Draw( p ); ここで、p->pLow が変な値を返して、Draw でこける ことになると思います。 void TuikaYoko( TEST *p ){//横方向のリスト追加 の最後にて end->pNext = NULL; head = back = end; head->pHigh = NULL; back->pLow = NULL; するか、あるいは、 TEST* p = new TEST した直後 p->pNext = p->Prev = p->Low = p->High = NULL しておくべきでしょうね。 開発環境はなんでしょう? デバッグモードがあるなら、1行ずつ実行させると どこでこけるかわかると思いますよ。
お礼
回答ありがとうございました。 デバッグするとフリーズしてうまくできなかったんですが、教えていただいてうまくいけました。