コードセグメント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の値が削除されない場合、メモリリークは発生しません。ただし、コードセグメント1のvalue1が削除されていない場合は、メモリリークが発生します。wstring::c_strの内部コードは私には同じように見えます。