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 |