I이 간단한 함수 가지고 그 함수의 둘째 줄에.c_str() 이상한가요? 운율이나 이유없이 데이터가 변경 되었습니까?
const wchar_t *StringManager::GetWCharTStar(int stringId)
{
std::wstring originalString = StringManager::GetString(stringId);
const wchar_t *retStr = originalString.c_str();
return retStr;
}
를 I *이 올바른 wchar_t가있다. 그러나 돌아가려면 데이터가 가비지 데이터로 전환됩니다. 사이에 기능이 없습니다. 무엇을 준다?!
감사합니다. –
"새로운 또는 malloc()"으로 할당 한 메모리에 데이터 복사본을 만들어야합니다. 글쎄, 당신은 값으로 wstring을 돌려줘야하고, 호출자는 이것을 사용하도록 바꿔야합니다. 만약 오우거가 밤중에 침입하여 그 코드를 먹고, 다시 한번 그렇게 생각한다면 먹을 것을 위협합니다. 그러면 동적 할당을 고려할 수 있습니다 ;-) –
@steve : 네, 맞습니다. 이것이 내가 "당신이해야한다면,"미묘한 것으로 시작한 이유입니다. –