|
List * A;
A = new List;
Node * B;
B = new Node;
이후에 A에 B를 추가하고
Node * C;
C = new Node;
A에 C를 또 추가하고..
즉 A는 B의 주소를 가지고 있고 B는 C의 주소를 가지고 있는
링크드 리스트에서..
만약 이 리스트 전체를 지우고자 할때
delete A 만 하면 B와 C가 가지고 있던 자리들이 모두 delete 되는건지..
아님 B와 C를 먼저 delete 하고 A를 delete 하는건지.. 모르겠네요.
또,
List * D;
D = new List;
A가 가진 주소(B)를 D에게 넘겨줘서..
D를 이용해서 B와 C를 접근하게 할 수 있게 했습니다.
이때 A를 delete 하니
D가 B와 C가 아닌 다른 쓰레기 값을 가지고 있습니다.
왜 그런가요?
소스가 너무 길어서 다 쓰기 힘들어서요.
이렇게 말로 개념만 설명했는데요...
이해가 갈지 모르겠네요..
도와주세요 ^^
|