回答編集履歴

1

自動変数のサイズについて追加

2022/06/12 06:42

投稿

int32_t
int32_t

スコア20878

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