回答編集履歴

2

readFile での新規要素の追加に insertItem を使うように修正

2019/08/28 06:35

投稿

jimbe
jimbe

スコア12648

test CHANGED
@@ -140,7 +140,11 @@
140
140
 
141
141
  FILE *fp;
142
142
 
143
- struct ST_MEMBER *top=NULL, *p=NULL;
143
+ struct ST_MEMBER head, *last = &head;
144
+
145
+
146
+
147
+ head.next = NULL;
144
148
 
145
149
 
146
150
 
@@ -164,9 +168,9 @@
164
168
 
165
169
  printf("メモリが確保できませんでした。\n");
166
170
 
167
- freeList(top); //確保した全てを開放する
171
+ freeList(head.next); //確保した全てを開放する
168
-
172
+
169
- top = NULL;
173
+ head.next = NULL;
170
174
 
171
175
  break;
172
176
 
@@ -186,19 +190,11 @@
186
190
 
187
191
 
188
192
 
189
- if(top == NULL) top = new;
190
-
191
-
192
-
193
193
  //既存の後ろに接続する
194
194
 
195
- new->prev = p;
196
-
197
- new->next = NULL;
198
-
199
- if(p) p->next = new;
195
+ insertItem(last, new);
200
-
196
+
201
- p = new;
197
+ last = new;
202
198
 
203
199
  }
204
200
 
@@ -208,7 +204,7 @@
208
204
 
209
205
 
210
206
 
211
- return top;
207
+ return head.next;
212
208
 
213
209
  }
214
210
 

1

malloc 失敗時に fclose しないバグを修正

2019/08/28 06:35

投稿

jimbe
jimbe

スコア12648

test CHANGED
@@ -166,7 +166,9 @@
166
166
 
167
167
  freeList(top); //確保した全てを開放する
168
168
 
169
- return NULL;
169
+ top = NULL;
170
+
171
+ break;
170
172
 
171
173
  }
172
174