Сегмент кода 1:
wchar_t *aString()
{
wchar_t *str = new wchar[5];
wcscpy(str, "asdf\0");
return str;
}
wchar_t *value1 = aString();
Сегмент кода 2
wstring wstr = L"a value";
wchar_t *value = wstr.c_str();
Если значение из сегмента кода 2 не удалено затем, утечка памяти не происходит. Однако, если value1 из сегмента кода 1 не удален существует утечка памяти. Внутренний код к wstring:: c_str выглядит одинаково мне.