프로그래밍/C++

0xC0000005 오류

이재만박사 2021. 8. 18. 14:28

CApple* pApple;

pApple->Show( );

 

다음과 같은 경우 발생한다

 

참조되지 않은 포인터, 즉 정확한 메모리 위치를 가리키지 않고 사용할 때  발생한다

 

또는 다음과 같은 경우도 있다

 

CApple* pApple = new CApple( );

// pApple 사용

 

delete pApple;

pApple->Show( );

 

위와 같은 경우도 마찬가지이다

 

일반적인 프로그램에서도 먼저 포인터를 삭제한 후 

다른 곳에서 갖다 쓸 때 발생하는 에러이다.

 

CAppleDlg::CAppleDlg( )

{

    m_pApple = new CApple( );

}

 

CAppleDlg::~CAppleDlg( )

{

    delete m_pApple;

}

 

CAppleUse::Process( )

{

    CAppleDlg dlg;

    m_pApple = dlg.GetApple( );

}

 

CAppleUse::Select( )

{

    m_pApple->Show( ); // 0xC0000005 오류 발생, 이미 ~CAppleDlg( )에서 객체 삭제

}