• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:十字方向に参照するリスト構造)

C++のリスト構造でのエラーについて

このQ&Aのポイント
  • C++で2つの双方向リスト構造を持つプログラムを作成しています。
  • リストに要素を追加し、順番に参照するためのコードを作成しましたが、実行するとEXEが強制終了されます。
  • どこが間違っているのかわからないため、エラーの原因や改善策について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • togino
  • ベストアンサー率75% (97/129)
回答No.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行ずつ実行させると どこでこけるかわかると思いますよ。

Giuseppe
質問者

お礼

 回答ありがとうございました。  デバッグするとフリーズしてうまくできなかったんですが、教えていただいてうまくいけました。