回答編集履歴

7

表現変更

2020/06/20 09:32

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  配列は参照型で、関数に渡すとアドレス(ポインタ)が引き渡ります。関数の仮引数はポインタ変数で引き受けることもできますが、配列定義で引き受けとることもできて配列として処理を書けます。
12
12
 
13
- 配列はコピーされずに共有されているので、関数内で配列内容を変更すると呼び出し元の配列が変更されます。
13
+ 配列はコピーされずに共有されているので、関数内で配列内容を変更すると呼び出し元の配列内容が変更されます。
14
14
 
15
15
 
16
16
 

6

表現変更

2020/06/20 09:32

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -4,13 +4,13 @@
4
4
 
5
5
  構造体は値型で、関数に渡すと構造体のコピーが渡され、関数の中で構造体の内容を変更しても呼び出し元の構造体内容は変更されません。
6
6
 
7
- コピーせずに構造体を共有したい場合は構造体のアドレスを渡すようにします。関数の引数はポインタ変数で引き受けます。関数の中で構造体の内容を変更すると呼び出し元の構造体が変更されます。
7
+ コピーせずに構造体を共有したい場合は構造体のアドレスを引き渡すようにします。関数の引数はポインタ変数で引き受けます。関数の中で構造体の内容を変更すると呼び出し元の構造体が変更されます。
8
-
9
-
10
-
8
+
9
+
10
+
11
- 配列は参照型で、関数に渡すとアドレス(ポインタ)が渡ります。関数の引数はポインタ変数で引き受けることもできますが、配列定義で引き受けとることもできて配列として処理を書けます。
11
+ 配列は参照型で、関数に渡すとアドレス(ポインタ)が引き渡ります。関数の引数はポインタ変数で引き受けることもできますが、配列定義で引き受けとることもできて配列として処理を書けます。
12
-
12
+
13
- 配列はコピーされずに共有ているので、配列内容を変更すると呼び出し元の配列が変更されます。
13
+ 配列はコピーされずに共有されているので、関数内で配列内容を変更すると呼び出し元の配列が変更されます。
14
14
 
15
15
 
16
16
 

5

説明補足

2020/06/20 09:31

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -1,4 +1,4 @@
1
- 質問内容とちょっと違いますが、以下のように構造体の配列にすれば処理がスッキリしますよ。
1
+ 質問内容とちょっと違いますが、以下に示すソースコードのように構造体の配列にすれば処理がスッキリしますよ。
2
2
 
3
3
 
4
4
 

4

説明補足

2020/06/20 02:01

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
 
4
4
 
5
+ 構造体は値型で、関数に渡すと構造体のコピーが渡され、関数の中で構造体の内容を変更しても呼び出し元の構造体内容は変更されません。
6
+
7
+ コピーせずに構造体を共有したい場合は構造体のアドレスを渡すようにします。関数の引数はポインタ変数で引き受けます。関数の中で構造体の内容を変更すると呼び出し元の構造体が変更されます。
8
+
9
+
10
+
11
+ 配列は参照型で、関数に渡すとアドレス(ポインタ)が渡ります。関数の引数はポインタ変数で引き受けることもできますが、配列定義で引き受けとることもできて配列として処理を書けます。
12
+
13
+ 配列はコピーされずに共有しているので、配列内容を変更すると呼び出し元の配列が変更されます。
14
+
15
+
16
+
5
17
  ```c
6
18
 
7
19
  #include <stdio.h>

3

コード修正

2020/06/20 02:00

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -216,9 +216,7 @@
216
216
 
217
217
  {
218
218
 
219
- int ID;
220
-
221
- for (ID = 1; ID <= SIZE; ID++) {
219
+ for (int ID = 1; ID <= SIZE; ID++) {
222
220
 
223
221
  if (list[ID].name[0] == '\0') continue;
224
222
 

2

説明変更

2020/06/20 01:41

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -1,4 +1,4 @@
1
- 質問内容と違いますが、InfoList は Info の配列にすればスッキリ書けるのでは?
1
+ 質問内容とちょっと違いますが、以下ように構造体の配列にすれば処理がスッキリしますよ。
2
2
 
3
3
 
4
4
 
@@ -34,7 +34,7 @@
34
34
 
35
35
 
36
36
 
37
- typedef Info InfoList[SIZE + 1]; // [1]~[SIZE], [0]は使わない
37
+ typedef Info InfoList[SIZE + 1]; // [1]~[SIZE]を使用, [0]は使わない
38
38
 
39
39
 
40
40
 

1

include修正

2020/06/20 01:29

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -4,12 +4,12 @@
4
4
 
5
5
  ```c
6
6
 
7
- #include <stdbool.h>
8
-
9
7
  #include <stdio.h>
10
8
 
11
9
  #include <stdlib.h>
12
10
 
11
+ #include <stdbool.h>
12
+
13
13
  #include <string.h>
14
14
 
15
15
  #define SIZE 100