강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

김준한님의 프로필 이미지
김준한

작성한 질문수

홍정모의 따라하며 배우는 C++

8.6 소멸자 destructor

소멸자

작성

·

203

0

~intarray()

{

if (m_arr != nullptr) delete[] m_arr;

}

q1. 소멸자 생성하실때 if문 조건에 nullptr이 아닐때 

delete 발생하는지 모르겠습니다.ㅠ

답변 2

1

인프런이 댓글 달린건 알림 주지 않아서 우연히 글 클릭해봤다가 댓글 주신거 발견했네요 ㅠ 혹시 추가로 답글 주실 것이 있으시면 댓글 말고 새 답글로 부탁드립니다..🤍

delete 하려는 이유는 m_arr 이 가리키고자 하는 메모리를 해제하기 위함입니다. 그럼 당연히 m_arr가 nullptr이 아니여야겠죠? 

if(m_arr == nullptr) {delete []m_arr;}} 는 m_arr 이 아무것도 가리키지 않을 때 m_arr 이 가리키는 메모리를 해제한다는 표현인데 말이 되지 않죠!

0

delete 발생합니다! 디버깅 해보세요..!

아니면 소멸자 안에 출력문 넣어서 직접 확인해보세요

김준한님의 프로필 이미지
김준한
질문자

아아 제가 궁금한게요  잘전달안된거 같아요. 미안해요

제가 궁금한건

if(m_arr == nullptr) {delete []m_arr;}}

m_arr가 nullptr 일때 delete이 발생해서 메모리가 없어져야 하는게 아닌가 해서용 ㅠ

m_arr가 nullptr이 아닐때 메모리가  없어지면 안될것 같아서용 ㅠ

김준한님의 프로필 이미지
김준한

작성한 질문수

질문하기