代码段 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 的内部代码在我看来是一样的。