• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

소멸자

21.03.07 11:20 작성 조회수 135

0

~intarray()

{

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

}

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

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

답변 2

·

답변을 작성해보세요.

1

안소님의 프로필

안소

2021.03.09

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

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

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

0

안소님의 프로필

안소

2021.03.07

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

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

김준한님의 프로필

김준한

질문자

2021.03.08

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

제가 궁금한건

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

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

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