|
1. 링크드리스트로 만든 각 노드는 모두 delete 해야합니다.
2. 포인터를 전달했다고 하지만 뭔가 잘못 전달되지 않았을까요?
시작지점이라면 전역 포인터를 쓰고 있지 않은지요...
김동필 님이 쓰신 글 :
: 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가 아닌 다른 쓰레기 값을 가지고 있습니다.
: 왜 그런가요?
:
: 소스가 너무 길어서 다 쓰기 힘들어서요.
: 이렇게 말로 개념만 설명했는데요...
: 이해가 갈지 모르겠네요..
:
: 도와주세요 ^^
:
|