回答編集履歴
1
補足を追加
test
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
- `fgets`の第2引数に、格納先の配列の**要素数+1を指定してはいけない**。配列の全要素に文字データが格納される状況で、自動的に付加される**ヌル文字`\0`が配列の範囲を超えて書き込まれる**。`sizeof`を利用して、配列の要素数を指定すべきだ。
|
4
4
|
|
5
5
|
- ファイルから読み込んだ文字列から単語を切り出す際、**単語の長さが0であっても総単語数のカウンターを1増やしている**。改行を含む文字列で総単語数が1増えてしまうのはこれが原因だ。カウンターの処理の前に、単語の長さを調べれば対処できる。
|
6
|
+
|
7
|
+
- `fopen`に失敗したら、ファイル処理を続けてはいけない。
|
6
8
|
|
7
9
|
- 配列名をそのまま使えばいい状況で、**意味もなくポインター変数を使うのはやめよう**。`p_word`, `p_key`, `buf`は、今回のコードではすべて不要だ。
|
8
10
|
|