_BLOCK_TYPE_IS_VALID pHead nBlockUse
Programming/MFC 2013. 3. 4. 14:55 |동적할당 후 해제할 때 급 등장하여 사람을 당황시키는 에러
_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
검색을 했더니 통상적인 이유는 아래와 같음.
1. 같은 걸 두 번 연속으로 delete했을 때 (해제한 것을 다시 해제했을 때)
ex)
int* i = NULL;
i = new i[5];
delete[] i;
delete[] i; <- ERROR!
2. 잘못 해제했을 때
int j;
delete[] &j;
----------------------------------------------------------------------------------------------------------
나도 이런 에러를 만났다-,.- 그런데 위의 두 가지 경우는 아니기에 잠시동안의 삽질을 했고, 원인을 찾았기 때문에 기록.
3. 할당받아 사용하는 변수를 사용해서 엉뚱한 곳에 값을 저장했을 때
한마디로 뻘짓한거다.ㅠㅠ
int* k = new int[5];
k[-1] = 10; <- 여기서부터 벌써 에러지만...
delete[] k;
k[5] = 10; 하고 나서 delete하면 오류나는거까진 확인 못함
근데 아마 오류 나겠지 뭐. 해서도 안되는 짓이고...
'Programming > MFC' 카테고리의 다른 글
CString (0) | 2013.09.13 |
---|---|
AfxMessageBox (0) | 2013.06.21 |
windows user interface, MFC 총 정리 (0) | 2012.12.21 |
UDN_DELTAPOS 메세지 보내기 (0) | 2012.09.03 |
::SetCurrentDirectory를 사용하면 다른 API 함수에 영향을 끼칠지도 모른다. (0) | 2012.08.07 |