Buffer too Small Error
C++/에러 처리 2019. 2. 12. 15:07 |가끔 프로그래밍을 하면서 의도치 않게 실수를 하곤 한다.
사람인지라 어쩔 수 없지만 그래도 했던 실수를 반복하지 않는게 중요하니.. 글을 남겨야지 ㅜ
이 메시지는 Debug 상태에서만 발생하는 Assert Message로 CString을 잘못 사용하였을 때에 나온다.
1 2 | CString strTemp = _T("abcd"); strTemp.Format(_T("%s.jpg"), strTemp); | cs |
.위와 같이 strTemp 변수에 값을 할당하고 Format을 이용하여 strTemp에 문자열을 할당하려고 할 때 발생하는 문제이다.
원인
strTemp를 변경하기 위해 strTemp를 인자 값으로 사용할 경우 복사가 아닌 직접 참조가 되어 인자 값 자체가
기존 "abcd"에서 다른 값으로 변경이 될 수 있다.
해결 방법
1 2 3 4 | CString strTotal; Cstring strTemp = _T("abcd"); strTotal.Format(_T("%s.jpg"), strTemp); | cs |
위와 같은 방법으로 변수를 하나 더 선언하여 사용하는 방법을 추천.
'C++ > 에러 처리' 카테고리의 다른 글
_WIN32_WINNT not defined.Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h) (0) | 2018.03.12 |
---|