STL 컨테이너에 new로 동적 할당된 객체의 포인터를 저장하고 제거할때에 fractize 흐으.. 여기에 적합한 질문은 아닌것 같지만 c++에 STL을 배워보려고 이래저래 만져보다가 궁금한게 있어서 올립니다. STL 컨테이너에 new 로 생성한 객체의 포인터를 저장하고서 STL 컨테이너에서 erase하거나 clear를 해서 그 객체의 포인터를 컨테이너 상에서 제거하면 제거할 시에 그 포인터가 잡고 있던 메모리도 자동으로 해제되나요? 아니면 컨테이너에서 그 포인터를 지우기 전에 해당 포인터가 잡고 있던 객체를 명시적으로 delete 해주어야 그 메모리가 완전하게 해방이 되나요? 만약에 컨테이너에서 erase될때에 해당 포인터가 가리키고 있던 메모리가 해제된다고 한다면 컨테이너에서 erase할때에 메모리를 해제하지 않게끔 하는 방법이 있나요? 12년 전
1개의 댓글이 있습니다. Being 당연히 명시적으로 해방해 주셔야 합니다. :) 얘가 어떤 식으로 생성된 내용인지 컨테이너가 알 수도 없고 알아야 할 이유도 없기 때문이지요. 12년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
fractize
흐으.. 여기에 적합한 질문은 아닌것 같지만
c++에 STL을 배워보려고 이래저래 만져보다가 궁금한게 있어서 올립니다.
STL 컨테이너에
new 로 생성한 객체의 포인터를 저장하고서
STL 컨테이너에서 erase하거나 clear를 해서
그 객체의 포인터를 컨테이너 상에서 제거하면
제거할 시에 그 포인터가 잡고 있던 메모리도
자동으로 해제되나요?
아니면 컨테이너에서 그 포인터를 지우기 전에
해당 포인터가 잡고 있던 객체를
명시적으로 delete 해주어야 그 메모리가 완전하게 해방이 되나요?
만약에 컨테이너에서 erase될때에 해당 포인터가
가리키고 있던 메모리가 해제된다고 한다면
컨테이너에서 erase할때에 메모리를 해제하지 않게끔 하는 방법이
있나요?
12년 전