• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語でセグメンテーションエラーの原因がわからず困っています。)

C言語でセグメンテーションエラーの原因がわからず困っています

このQ&Aのポイント
  • C言語でプログラムを実行するとセグメンテーション違反が表示されてしまい全く動きません。
  • 更新され続けるテキストファイルから別のテキストファイルに出力するプログラムで、file.txtを読み取る方法に問題があります。
  • セグメンテーション違反の原因は、重複した文章をout.txtに移すことによるものです。

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

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

とりあえず前半ざっと読んだ感じで…… ・配列とポインタの違いがわかっていないように見える(NULLを入れて初期化、のコメント) ・str2はNULLにならないので最初から「二周目以降」のブロックに入ってしまう。segmentation faultの原因はこれにより開いていないfp2をfclose()しようとしているためと思われる ・「たまたま同じ行がある」場合の考慮がなされていない。元ファイルが追記以外の処理をしないなら、同値判定よりも読み込んだ回数を記憶しておいた方が簡単

arlstumia
質問者

お礼

ご回答有難う御座いました。おかげで何がダメだったのか良く理解できました。 配列とポインタの違いについては勉強し直しました。ご指摘感謝します。

その他の回答 (3)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.4

OSがCentOSということなら、そんな面倒なことしないでもできるような。 tailというコマンドの -f オプション指定時の処理を見れば参考にできそうな気がします。

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

> 開いていないfp2をfclose() fp2じゃなくてfpですね。訂正しときます。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

・デバッガを使ってプログラムの実行を追いかけろ. ・if (str2 != NULL) ってどういう意味? ・「週」じゃなくて「周」ですな.

関連するQ&A

専門家に質問してみよう