Почему не делает wstring:: c_str вызывают утечку памяти если не правильно удаленный

Сегмент кода 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 выглядит одинаково мне.

5
задан monksy 6 August 2010 в 14:55
поделиться