안녕하세요 c++로 새롭게 공부해보고 잇는데요
자바할때는 가비지콜렉터가 알아서 처리해줬느데
c++할때
연결리스트 클래스를 만들어서 클래스 안에 변수로
Node* head;
Node* tail;
을 만들어줬는데요
생성자에서
head = new Node;
tail = new Node;
로 설정해줬는데
소멸자에서 리스트 안에 있는 노드들만 메모리 해제 해줘도 되나요?
head랑 tail을 소멸자에서 메모리 해제 해주니까 프로그램이 끝날때 main함수에서 List 클래스로 선언한 지역 변수가 없어지면서
소멸자 호출될때 디버깅 오류가 나더라구요
그런데 소멸자에서 노드들만 delete해주고 head랑 tail은 메모리 해제 안하고 그대로 두니까 디버깅 오류가 안나더라구요
이렇게 해도 메모리 누수가 발생 안하나요? 원레 이렇게 해야 하는건가요?ㅠ
뭔가 소멸자에서도 head랑 tail도 해제해야될거같은 강박관념이..