본문 바로가기

Language & API/C++

HEAP CORRUPTION DETECTED 발생

HEAP CORRUPTION DETECTED 발생
  void CIni::SaveString(const TCHAR *KeyName, TCHAR *value)
{
	int strLen = _tcslen(value);
	TCHAR *strQuot = new TCHAR[strLen + 1];

	strQuot[0] = _T('\"');
	_tcsncpy(strQuot + 1, value, strLen);
	strQuot[strLen + 1] = _T('\"');
	strQuot[strLen + 2] = _T('\0');

	WritePrivateProfileString(_appName, KeyName, strQuot, _fileName);

	delete[] strQuot;
}

위와 코드 delete[] 부분에서 아래와 같은 에러가 발생한다. 



이건 크기가 10인 배열을 생성 후 작업 내용이 그 배열의 크기를 벗어나 작업 후 delete를 했을때 생긴다. 

수정 포인트는 아래와 같다.

크게에 벗어난 작업을 했으므로 그 크기를 보다 크게 잡으면 된다.  + 1 이 아니라  + 3을 해주면 된다. 


'Language & API > C++' 카테고리의 다른 글

[코딩]C++ cout 관련 정보  (0) 2015.10.07
[이론]SAL를 사용하자(Source Code Annotation Language)  (0) 2015.09.03
Mutex 관련 내용  (0) 2015.06.23
함수 오버로딩(Function Overloading)  (0) 2015.06.07
<iostream>  (0) 2015.06.02