回答編集履歴
1
自動変数のサイズについて追加
test
CHANGED
@@ -4,6 +4,26 @@
|
|
4
4
|
|
5
5
|
>` fgets(line,pb[1],fp);`
|
6
6
|
|
7
|
-
`fgets()` では1行しか読めません。2行以上を読みたいなら、`fread()` です。
|
7
|
+
`fgets()` では1行しか読めません。2行以上を読みたいなら、`fread()` です。`fread()` のあと `line[pb[1]] = 0;` で0終端しましょう。
|
8
|
+
|
9
|
+
----
|
10
|
+
追記:
|
11
|
+
|
12
|
+
```c
|
13
|
+
#define SIZE 256 * 1024 * 1024
|
14
|
+
...
|
15
|
+
char line[SIZE] = {};
|
16
|
+
....
|
17
|
+
char title[SIZE] = {};
|
18
|
+
```
|
19
|
+
こんな巨大な自動変数は確保できない可能性があります。両方ともmalloc()にしましょう。
|
20
|
+
```
|
21
|
+
char* line = malloc(SIZE);
|
22
|
+
char* title = malloc(SIZE);
|
23
|
+
....
|
24
|
+
// main()終了前に
|
25
|
+
free(line);
|
26
|
+
free(title);
|
27
|
+
```
|
8
28
|
|
9
29
|
|