디버깅 하는데 이상하네요 ㅜㅜ...

kknd345의 이미지

Visual 6.0 C++ 로 프로그래밍 하는데요.

소스 코드를 짜고나서 실행을 시켰는데 중간에 뻗지는 않는데 틀린 값이 이상하게 나와서

그것을 고치려고 디버깅을 하는데

분명히 new 로 잡은 배열을 delete 하는곳에서
몇번은 이상이 없는데 ( 이것이 반복됩니다.)

나중에

Quote:
Debug Assertion Failed!

Program : C:\~~~ user.exe
File: dbgheap.c
Line: 1050

Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)

For information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts.

(Press Retry to debug the application )

중단(A) 다시 시도(R) 무시(I)

이런 오류나 나네요..

Watch 를 이용해서 보니깐 메모리가 분명히 할당 된 상태인데..
delete 하는 부분에서 에러가 나니깐 황당하네요..

왜 그런건가요? 혹시 이유 아시는 분 있나요?

실행할때는 프로그램 중단 같은건 안 되거든요.
(콘솔 어플리케이션입니다)

doldori의 이미지

흔히 힙이 깨졌다고 부르는 상황이군요.
포인터를 잘못 다루면 그렇게 될 수 있습니다.
주의깊게 디버깅하는 수밖에요. --;