강의 내용의 메모리 해제 관련 (메모리 누수)
325
작성한 질문수 31
강의 내용에 위와 같이 나오는 부분에서,
Item에 들어가있는 Armor와 Weapon 클래스의 멤버 변수가 int attack 처럼 단순한 일반 변수만 있다고 했을때,
위의 경우도 여전히 메모리 누수 현상이 벌어지지 않나요? Item을 기준으로 delete를 했기 때문에, Armor나 Weapon의 int attack 멤버변수는 Item 소멸자만 호출되기 때문에 본인들의 소멸자가 불리어지지 않아서 해제되지 못하기 때문에 계속 쌓인다고 이해했는데 혹시 잘못 이해했을까요?
다른 질문내용을 살펴보니, 다른 학생은 상속된 자식의 멤버변수에 또다시 동적할당을 받는 포인터 변수가 있는 상황에서만 메모리 누수가 된다고 말하는것 같아서 이해가 안가서 질문을 추가로 남겨봅니다.
답변 1
2
위의 경우도 여전히 메모리 누수 현상이 벌어지지 않나요?
아뇨 일어나지 않습니다.
Item을 기준으로 delete를 했기 때문에, Armor나 Weapon의 int attack 멤버변수는 Item 소멸자만 호출되기 때문에 본인들의 소멸자가 불리어지지 않아서 해제되지 못하기 때문에 계속 쌓인다고 이해했는데 혹시 잘못 이해했을까요?
소멸자 호출 여부는 제대로 이해하셨지만, 실제 할당된 메모리 크기는 그쪽에서 관리하는게 아니라
힙 공간에 메모리 크기를 적어두고 그것을 토대로 메모리를 정리해주기 때문에 상관없습니다.
leak 여부에 의심이 간다면 무한루프를 돌면서 new delete를 해서 프로그램 메모리 사용량을 살펴보면 됩니다
visualstudio에서 파일분할관리실습시 설정 문의를 드립니다.
0
559
1
정렬함수 좀 더 확실하게 이해 할 방법이 있을까요?
0
453
1
strcpy() 구현 관련 질문
0
533
1
빌드(망치)를 누르니 이런 오류가 떴습니다. 어떻게 해야 하나요?
0
475
1
클래스 타입의 포인터 질문합니다
0
559
1
입력값을 enum 값에 넣어주는거 이제 막혔나요?
0
503
1
템플릿 특수화 관련 질문
0
389
1
포인터 관련 질문합니다!
0
270
1
Unable to start assembler. Check your settings.
0
848
2
cpu선택
0
548
1
포인터 질문이 있습니다
0
331
1
20:35 에서 구조체 크기에 대한 질문입니다!
0
589
1
iterator 삭제관련
0
415
1
함수 호출을 디스어셈블러로 분석하다가 궁금점이 생겼습니다!
0
316
1
15 분 45초 대 질문
0
317
0
스택 프레임 질문합니다!
2
312
1
오른값 참조 in 게임
0
391
0
동적할당 질문이 있습니다
0
457
1
안녕하세요 메모리에 대해 질문드립니다.
0
312
1
함수객체 의 매개변수
0
365
1
복사생성자
0
439
1
main이나 endl 부분이 주황색으로 표시된건 어떻게 하나요
0
430
1
포인터 실습 강의를 보고 궁금한게 있습니다.
0
359
1
스택 오버플로우
2
801
1





