teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追加

2020/07/28 12:09

投稿

amiya
amiya

スコア1218

answer CHANGED
@@ -11,10 +11,29 @@
11
11
 
12
12
  例えばこんな風にするとか。
13
13
 
14
- ```JAVA
14
+ ```C
15
15
  // char *n = 0;
16
16
  char n[20];
17
17
 
18
18
  // char *a = 0, *b = 0, *c = 0;
19
19
  char a[8], b[205], c[106];
20
- ```
20
+ ```
21
+
22
+ 追加?
23
+
24
+ ```C
25
+ while(strcmp(pos,"0") != 0){     /*0が入力されるまで検索を続ける*/
26
+
27
+ // 省略
28
+
29
+ printf("%d件見つかりました",flag);
30
+
31
+ infile_scanf("%s", pos);
32
+
33
+ }
34
+ ```
35
+ この最後の`infile_scanf("%s", pos);`は何でしょう?
36
+ 前半でファイルの読み込みは終わっているはずなのに、これでさらに読み込んでエラーが出る。
37
+ そのまま、whileに戻って、posの値は(おそらく)書き換わらないので、whileは回り続けて
38
+ 無限ループとなり、エラーが出続ける。
39
+ のだと思います。

1

追加

2020/07/28 12:09

投稿

amiya
amiya

スコア1218

answer CHANGED
@@ -6,4 +6,15 @@
6
6
  配列等で領域を確保して、そのアドレスをポインタに代入するか、malloc等で動的にデータを書き込む領域を確保して、そのアドレスを渡してください。
7
7
 
8
8
  そのほか、a,b,c等のポインタ変数も同様です。
9
- ポインタ変数は宣言しただけでは、領域は確保されません。
9
+ ポインタ変数は宣言しただけでは、領域は確保されません。
10
+
11
+
12
+ 例えばこんな風にするとか。
13
+
14
+ ```JAVA
15
+ // char *n = 0;
16
+ char n[20];
17
+
18
+ // char *a = 0, *b = 0, *c = 0;
19
+ char a[8], b[205], c[106];
20
+ ```