C++에서 링크드리스트를위한 프로그램을 만들고있었습니다. 개념을 구현하기 위해 포인터의 '시작'을 전역 적으로 작성하여 목록의 첫 번째 요소를 가리 킵니다. 이전에 동적으로 할당되었지만 다른 포인터를 사용하여 메모리를 삭제할 수 있습니까?
프로그램 완료 후 나는 시작과 다른 로컬 선언 포인터 'P'를 사용하여 연속적인 노드에 액세스하여, 메모리 누수를 방지하기 위해 동적으로 할당 된 모든 메모리를 삭제하려고했습니다. 여기에서는 동일한 올바른 주소를 가리키는 포인터를 사용했지만이 포인터는 메모리 할당에 사용 된 포인터가 아니지만 일반적인 포인터처럼 로컬로 선언되었습니다.내 질문은 - 같은 위치를 가리키는 일반 포인터를 사용하여 동적으로 할당 된 메모리를 삭제할 수 있습니까? 포인터는 new
에서 돌아 왔을 것과 같은 유형과 값1을 가지고로
[다른 포인터에서 할당 된 포인터 삭제 중 중복 된 포인터를 다시 삭제해야합니까?] (https://stackoverflow.com/questions/13259305/delete-pointer-that-is-assigned-from- another-pointer-should-i-delete-the-other) –
포인터를 주소를 가리키는 것으로 생각하지 마십시오. 포인터를 주소라고 생각하면 (그리고 그 주소에있는 객체를 가리키고 있습니다). 35 메인 스트리트에서 주택을 철거하려는 경우 주소가 어떻게 전달되었는지는 중요하지 않습니다. 여전히 동일한 집입니다. – molbdnilo
@molbdnilo : 당신도 37을 올릴 수 있을까요? 그런 다음 일출은 36 번에서 볼 수 있습니다. – Bathsheba