• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:c言語 ハッシュ表)

C言語 ハッシュ表のプログラムについて質問

このQ&Aのポイント
  • C言語のハッシュ表のプログラムについて、関数enterを二回呼び出してvalueの値を変更して表示させたいのですが、値が更新されません。
  • ハッシュ表のプログラムで、関数enterを二回呼び出してvalueの値を変更しても更新されない問題が発生しています。
  • C言語のハッシュ表のプログラムで、関数enterを二回呼び出してvalueの値を変更しても更新されません。どうすれば値を更新できるでしょうか?

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

  • ベストアンサー
回答No.1

enter関数の中の /* キーが既に存在しているかどうかチェック(lookup() と同じ処理)*/ n = t->heads[index]; while (n != NULL) { if (strcmp(key, n->key) == 0) return n->id; /* 通し番号を返す */ のif文で、既存キーと同じキーが来た時(つまり、2回目の呼び出し時)に「通し番号を返すだけでreturnしている」から、新しいvalueをどこにも代入しないまま関数から抜けてしまう。 「どうすれば値が更新されるようになるか?」は、もう判るよね?

caneo_bote
質問者

お礼

できました!ありがとうございました!