Windows가 @#!^!%!@#$%!@.exe에서 중단점을 트리거했습니다.

힙이 손상되었거나 @#!^!%!@#$%!@.exe 또는 여기서 로드한 DLL에 버그가 있을 수도 있습니다.

자세한 진단 정보는 [출력] 창을 참조하십시오.

---------------------------------------------------------------------------------------
위와 같은 에러가 난다면 보통 DLL에서 동적 메모리 생성한걸 Exe에서 삭제하거나
그 반대 경우에 발생하는 에러이다

하지만 DLL를 쓰지 않은 상황에서 에러가 난다면 다음 상황을 먼저 생각하라

나는 lib라이브러리를 사용하여 exe프로젝트를 생성했는데 위와 같은 에러가 발생했다..

에러의 원인은 동적으로 할당한 크기보다 더 크게 초기화를 하는 작업을 하여 할당한 크기보다 힙을 더 사용한 상황이고
그런 상황에서 삭제를 하면서 저런 에러가 발생했다..

다시 정리하자면 동적으로 할당한 메모리 크기가 10이라고 하면
초기화(Zeromemory 함수 사용)할때 20으로 초기화 하고
삭제를 하면서 발생한 문제이다.

고로 DLL(혹은 lib)쪽 에러를 의심하기 전에 초기화를 할당한 크기만큼 제대로 초기화 하고
삭제 했는지 확인해보자
!!!

이 에러를 잡아주신 회사 실장님에게 감사드리며...

에러 원인을 알았을때 좀 쪽팔렸다..

아무튼 프로그램의 보통 큰 원인은 이런 단순 실수로 발생하는게 많으니 앞으로 주의하며 코딩해야겠다 ㅠ.ㅠ






by 널부러 2009. 8. 21. 12:08