• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:for文が機能しません。どなたか原因を指摘して頂けますか。)

for文が機能せず、looplistが常にNULLになる原因を指摘してください

このQ&Aのポイント
  • プログラム内のfor文が機能せず、ループをスキップしてしまっている可能性があります。
  • looplistが常にNULLになる原因として、ループの条件記述がおかしい可能性があります。
  • 解決策として、ループの条件を正しく設定し、ループの中でのアクションを適切に行う必要があります。

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

  • ベストアンサー
  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.3

ざっと見た感じですが…… ・flow_headがローカル変数なので関数呼び出しごとに初期化される ・if()の構成が間違っている(どのprintf()にも到達しないパターンがある) ・リストが構築されてない(malloc()で確保したメモリのアドレスをnextに入れる処理がない) ・追加で確保した要素のnextをNULLにしてない(このままリストに入れたら終端判定ができなくなる) ・関数脱出直前のfree(looplist)は不要というかここでやってはいけない(ヒットした要素、もしくは作ったばかりの新要素を壊してしまうことになる) とりあえずこんなところで。 ループは一回は入ってると思いますが、ステップ実行で追ってみましたか?

arlstumia
質問者

お礼

上で言った事は忘れてください・・。 助かりました。有難う御座いました。

arlstumia
質問者

補足

ご回答有難う御座います。 >・if()の構成が間違っている(どのprintf()にも到達しないパターンがある) 私の力不足でどんなパターンがあるのか予測がつきません。 お手数ですが、どんなパターンがあるのか教えて頂いてもよろしいでしょうか。if文の最後にelse文をつけているのでいずれかのprintf()には辿り着くのではと思えてしまうのですが・・。

その他の回答 (2)

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.2

>for (looplist = &flow_head; looplist ; looplist = looplist->next) >{ ここのすぐ下でlooplistの値をprintf()で出力してみましたか? いわゆる「printfデバッグ」の基本です。

arlstumia
質問者

お礼

ご回答有難うございました。

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

>for (looplist = &flow_head; looplist ; looplist = looplist->next) ・・・ ループ条件 *looplist って書いたらどうなる?