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