링크드 리스트에 할당했던 메모리 해제에 대한 질문
파란
2023.04.01
질문 제목 :
free할때 제대로 되긴 하는데 이게 맞는것인지 모르겟습니다.
질문 내용 :
97 void list_free(void)
98 {
99 list *tmp = head;
100list *prev;
101
102 while (tmp != null) {
103 prev = tmp;
104tmp = tmp-next;
105 free(prev);
106 }
107 }
97 void list_free(void)
98 {
99 list *tmp = head;
100
101 while (tmp != null) {
102 free(tmp);
103 tmp = tmp-next;
104 }
105 head = null;
106 }
둘 다 했을때 메모리를 해제시켜주는데 첫번째것이 제대로 해제시켜주는것 같고
두번째 것은 헷갈립니다.
답변 부탁드립니다.
-
황예
아 , 네 그렇군요~
감사합니다:-) -
올해1살
두번째는 작성해서는 안되는 코드입니다. 메모리 해제를 했는데 그 다음 줄에 해제한 메모리 영역을 접근하고 있네요.