프로그래밍/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( )에서 객체 삭제
}