質問編集履歴
2
エラーメッセージの変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
c言語で英単語とその和訳が書いてあるtxtファイルを読み込み、構造体に全て格納するプログラムを書きましたが、うまくいきません。コンパイルはできたのですが実行すると以下のエラーが出ます。
|
2
2
|
```txt
|
3
|
-
zsh:
|
3
|
+
zsh: segmentation fault
|
4
4
|
```
|
5
5
|
|
6
6
|
問題点・改善点を教えてください。
|
1
コードの変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -29,24 +29,28 @@
|
|
29
29
|
i=0;
|
30
30
|
int j=0, k=0;
|
31
31
|
while((c = fgetc(fp)) != EOF) {
|
32
|
-
i
|
32
|
+
while(c != ' ') {
|
33
33
|
buf[i] = c;
|
34
34
|
i++;
|
35
|
+
}
|
35
|
-
|
36
|
+
buf[i] = '\0';
|
36
37
|
i = 0;
|
37
|
-
}
|
38
38
|
|
39
|
-
if(buf[0] != '
|
39
|
+
if(buf[0] != '\0') {
|
40
40
|
if(j==0) {
|
41
41
|
strcpy(p[k].english, buf);
|
42
42
|
j = 1;
|
43
43
|
} else {
|
44
44
|
strcpy(p[k].japanese, buf);
|
45
|
-
j=0;
|
45
|
+
j = 0;
|
46
46
|
k++;
|
47
47
|
}
|
48
48
|
memset(buf, '\0', sizeof(buf));
|
49
49
|
}
|
50
|
+
}
|
51
|
+
|
52
|
+
for(i=0; i<20; i++) {
|
53
|
+
printf("%s %s\n", p[i].english, p[i].japanese);
|
50
54
|
}
|
51
55
|
|
52
56
|
fclose(fp);
|