문자열을 리턴하는 함수인데 액세스 위반이 발생합니다
상큼한캔디
#typedef std::basic_stringTCHAR _tstring;
TCHAR* _tstringf_buffer = NULL;
_tstring _tstringf(_tstring format, ...)
{
if(_tstringf_buffer != NULL)
delete _tstringf_buffer; // 메모리 누수 방지
va_list valist;
va_start(valist, format);
_tstringf_buffer = new TCHAR[_vsctprintf(format.c_str(), valist) + 1]; // 결과물 문자열의 길이 만큼 할당
_vstprintf(_tstringf_buffer, format.c_str(), valist);
va_end(valist);
return _tstringf_buffer;
}
MessageBox(hWnd, _tstringf(_T(5+5 = %d 입니다.), 5+5), _T(메시지박스), MB_OK);
이렇게 쓰고 싶어서 위의 _tstringf 함수를 구현했는데요 ㅠㅠ
return _tstringf_buffer; 부분에서 액세스 위반이 발생합니다.. (0xC0000005)
위와같은 기능을 구현하는 함수를 짤려면 어떻게 해야할까요?
단, void _tstringf(_tstring& lpszString, _tstring format, ...)
이런 방식은 안됩니다 ㅠㅠ