回答編集履歴

2

コード追記

2020/06/19 10:40

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -5,3 +5,123 @@
5
5
 
6
6
 
7
7
  ポインタ変数が宣言されているだけで、入力された値を格納するための領域が確保されていません。
8
+
9
+
10
+
11
+ ---
12
+
13
+ メモリを動的に確保するなら[malloc](https://ja.cppreference.com/w/c/memory/malloc)と[free](https://ja.cppreference.com/w/c/memory/free)を使用します。
14
+
15
+
16
+
17
+ ---
18
+
19
+ ポインタで渡したいだけなら
20
+
21
+ ```diff
22
+
23
+ void Register(InfoList* list) {
24
+
25
+ printf("登録したい");
26
+
27
+ int ID = InputID();
28
+
29
+ - Info* info;
30
+
31
+ + Info info;
32
+
33
+ - InputInfo(info);
34
+
35
+ + InputInfo(&info);
36
+
37
+ - SetInfo(list, info, ID);
38
+
39
+ + SetInfo(list, &info, ID);
40
+
41
+ printf("登録に成功しました。\n");
42
+
43
+ }
44
+
45
+ int main() {
46
+
47
+ - InfoList* list;
48
+
49
+ + InfoList list;
50
+
51
+ int MenuID = 0;
52
+
53
+ while (MenuID != 5) {
54
+
55
+ printf("---------------住所録プログラム--------------\n");
56
+
57
+ printf("1:登録\n");
58
+
59
+ printf("2:検索\n");
60
+
61
+ printf("3:閲覧\n");
62
+
63
+ printf("4:削除\n");
64
+
65
+ printf("5:終了\n");
66
+
67
+ printf("行う操作の番号を入力して下さい。\n");
68
+
69
+ scanf("%d", &MenuID);
70
+
71
+ system("cls");
72
+
73
+ switch (MenuID) {
74
+
75
+ case 1:
76
+
77
+ - Register(list);
78
+
79
+ + Register(&list);
80
+
81
+ break;
82
+
83
+ case 2:
84
+
85
+ - Search(list);
86
+
87
+ + Search(&list);
88
+
89
+ break;
90
+
91
+ case 3:
92
+
93
+ - ListAll(list);
94
+
95
+ + ListAll(&list);
96
+
97
+ break;
98
+
99
+ case 4:
100
+
101
+ - Delete(list);
102
+
103
+ + Delete(&list);
104
+
105
+ break;
106
+
107
+ case 5:
108
+
109
+ break;
110
+
111
+ default:
112
+
113
+ printf("不正な番号です。再入力して下さい。\n");
114
+
115
+ break;
116
+
117
+ }
118
+
119
+
120
+
121
+ }
122
+
123
+ return 0;
124
+
125
+ }
126
+
127
+ ```

1

文言修正

2020/06/19 10:40

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -4,4 +4,4 @@
4
4
 
5
5
 
6
6
 
7
- ポインタ変数が宣言されているだけで領域が確保されていません。
7
+ ポインタ変数が宣言されているだけで、入力された値を格納するための領域が確保されていません。