回答編集履歴

1

加筆

2018/01/20 07:29

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -2,12 +2,22 @@
2
2
 
3
3
  while (p != NULL) { // 次ポインタがNULLまで処理
4
4
 
5
- p2 = p->next; // freeの前にnextが指す
5
+ p2 = p->next; // freeの前にnextが指す場所をとっといて
6
6
 
7
- free(p);
7
+ free(p); // (pをfreeするとp->nextが読めない。アブナイトコダッター)
8
8
 
9
- p = p2;
9
+ p = p2; // んでもって無事次の要素を辿ることができるね♪
10
10
 
11
11
  }
12
12
 
13
13
  ```
14
+
15
+
16
+
17
+ > 普通openしたファイルを閉じるときにfree()関数でメモリを開放すると認識している
18
+
19
+
20
+
21
+ ファイルはfopenで開けてfcloseで閉じる。
22
+
23
+ メモリはmallocで獲得しfreeで開放する。