안녕하세요...


간단하게 도스 게임 만들고 있는 입문 프로그래머입니다.


이틀 전부터 메모리 관련해서 오류가 나...


정말 머리 싸매고 디버깅을 해보고 검색을 해보고.... while(1); 했지만...


잡지 못하여 여쭤보려 글을 올립니다 ㅠ_ㅜ



메뉴입니다.


위에 주석과 같이 newFile_Hero(); & LoadFile_Hero();에서 Heap 관련 오류 (제 생각엔!)가 납니다.


일단 저 함수에 들어가면




여기로 들어옵니다....


제가 assert로 어디서 오류가 나는지 확인해본 결과


충격적이게도 ofstream의 선언 구문에서 가끔 발견됩니다. 가끔이란 것은 실행 될 경우도 있고 안되는 경우도 있다는 뜻입니다... 


(여기서 점유 중인 메모리 영역을 침범한 오류일 가능성이 높다고 판단했습니다!)




그런데 방금 호출 스택에서는 return에서 들어갔다고 나오네요...


마지막에 멈추는 코드는(어셈블리 제외) free.c라고 합니다...


후...


그래서 동적 할당과 관련된 모든 짓을 다해봤습니다.


댕글링 포인터도 처리해보고


인터넷에서 똑같은 오류가 있으신 분은 delete를 두 번 하셨다고 해서 delete구문을 아예 지워보기도 했고...


그러나 오류는 똑같이 발생하네요... 하...


 

[가장 마지막에 멈추는 free.c 코드 부분 발췌]


그런데 가장 충격적인 것은 디버깅 (f5)에서는 아무런 문제가 없다는 겁니다...


제발 ㅠㅠ... 도움 좀 부탁 드릴께요...


문제를 해결하기 위해서 주어진 코드가 부족하시면 댓글로 말씀해주시면 감사하겠습니다....


부탁드립니다 ㅠ-ㅠ


//////////////////////////////////////////////////////////////////////////////////////////////////////// add 13:11




아까와는 다른 호출 스택.... ㅠ