Q&A

  • 에러메시지가 뜨는 이유를 가르쳐주세요.
급한 질문입니다.
제가 짠 프로그램에서는 에러가 없는것 같은데 다음과 같은 에러메시지가 생기면서 프로그램이 동작이 되지 않습니다.
==================================================================
'0x5f155f11'에 있는 명령이 '0x5f155f11'의 메모리를 참조하였습니다. 메모리는 read될 수 없습니다.
Runtime error 216 at 5f155f11
==================================================================
제가 원하는 결과(파일)도 제대로 생성이 되는데, 프로그램을 끝내고자 할 때 위와 같은 에러가 생기면서 프로그램이 죽지도 않습니다. 모든 함수의 처음과 끝부분에 try ... except를 넣어도 에러는 발견되지 않았습니다. 이유를 모르겠어요.
이와 같은 경험이 계신분 급히 도움을 요청합니다.
2  COMMENTS
  • Profile
    KDDG_BaSTaD 2003.02.10 17:54

    ==> 밑에 김연곤님의 말처럼 AV(Access Violation)의 경우 대부분 Invalid Pointer를 Access할 경우입니다.. 즉, 자원을 할당했다가 프리(Free)한것을 다시 Access할경우이죠.. 보통.. 댕글링 레퍼런스(-_-; 어색한 한글)가 되버려서 생기는 문제가 다반사입니다..  할당과해제는 님께서 명확하게 제어를 하셔야합니다. 할당과 해제는 단 하나의 함수로만 만드시고, 그 함수를 호출하는 부분역시 한곳 이상이 되지 않도록 만드시는게 이런 오류 방지 및 디버깅시 효율적입니다...

    팁으로,, 가끔 이런 AV가 나면 어디서 나는지 몰라 당황하시는데, AV가 났을때 Debug 윈도우중 Call Stack이란 넘이 있습니다. 이걸 보시믄, 함수호출에대한 리스트가 스택으로 표현되어있죠.. 최상위에 있는 함수가 에러나기 직전에 호출한것입니다. 그부분부터 찾아보시면 금방 찾으실 수 있습니다.

    ps. 성공하시길... 즐프 & 즐스타
  • Profile
    김연곤 2003.02.09 19:48
    안녕하세요..
    프로그램을 종료할때 메모리 읽기 Error는 보통 프로그램에서 사용하던 자원을 Free하는 과정에서 주로 생깁니다.
    프로그램을 보지 않고 정확히 알수는 없지만...
    프로그램내에 종료시에도 계속 자원을 요구하는 놈이 있는지 확인해 보세요..

    그럼 수고하세요..