std::vector 를 담고 있는 class 에서의 메모리누수?
글쓴이: kleinstein / 작성시간: 금, 2006/09/29 - 5:54오후
안녕하세요..
우선 코드부터..
class A
{
std::vector<double> test;
}
std::vector<A*> B;
이렇게 클래스안에서 vector를 사용하려고 합니다.
그런데 이렇게 한다음 나중에 프로그램을 닫으면 메모리 누수가 생기더라구요..
아직 초보라 햇갈리는데요..
뭐가 잘못된건가요?
도와주세요..
Forums:
메모리 누수를
메모리 누수를 어떻게 확인하셨는지요?
new 로 할당한
new 로 할당한 클래스의 포인터를 B에 계속 넣는 코드인가 보군요.
그렇게 되면 B가 소멸될 때 할당된 메모리는 그대로 있고 포인터들만 사라지겠죠.
따라서 메모니 누수를 막으려면,
프로그램이 종료하여 B가 소멸되기 전에 B에 담겨있는 포인터들이 가리키는 객체들을 모두 delete해야 합니다.
오장현님께서 답변을
오장현님께서 답변을 달아주신 것 같네요..
관련 URL을 참조해보세요.
http://oopsla.snu.ac.kr/~sjjung/stl/ptr_0001.htm
=================================
나비아빠
=================================
나비아빠
댓글 달기