回答編集履歴
1
修正
test
CHANGED
@@ -2,8 +2,9 @@
|
|
2
2
|
文字列は「文字の配列」であり、それが `char line[size];` といった宣言に現れています。
|
3
3
|
おそらく txtArr は「文字列の配列」のつもりと思いますが、 `char txtArr[N];` という宣言は line と全く変わらず、「文字の配列」として宣言されています。
|
4
4
|
また、 strcpy( 及び strcpy_s) の第一引数は文字列へのアドレスのはずです。`char txtArr[N];` の時の `txtArr[i]` は「 i 番目の文字」を表す書き方であり、それをアドレスとして渡すのは最悪システムを壊す行為です。
|
5
|
-
ファイルから 1 行最大 size 文字で最大 N 行読み込んで保持するのであれば、
|
5
|
+
ファイルから 1 行最大 size(-1) 文字で最大 N 行読み込んで保持するのであれば、
|
6
6
|
```c
|
7
7
|
char txtArr[N][size]; //文字の2次元配列=文字列の1次元配列
|
8
8
|
for(int i=0; i<N && fgets(txtArr[i],size,fp)!=NULL; i++); //この場合の txtArr[i] は i 番目の「文字の配列(=文字列)」のアドレス
|
9
9
|
```
|
10
|
+
といった書き方が必要になります。
|