teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

加筆

2018/01/20 07:29

投稿

episteme
episteme

スコア16612

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で開放する。