Может ли кто-нибудь помочь мне понять, почему приведенный ниже код не освобождает память после ее выделения.SysFreeString не освобождает переменную
BSTR ys;
{
ys = ::SysAllocString(L"Asdfghjk");
{
::SysFreeString(ys);
}
}
wcout << ys; // *I could see "Asdfghjk" in console window*
Кроме того, будьте осторожны, чтобы не путать «освобождение памяти» с «разрушением его содержимого»; один не означает другого. – andlabs
@ и это просто общее утверждение? Потому что мы говорим о строках здесь, а персонажи - это фундаментальные типы, которые не нужно уничтожать. –
Уничтожение в буквальном смысле; процесс освобождения не гарантированно перезаписывает символы случайным мусором, и даже не требуется возвращать память в ОС, поэтому попытка получить к нему доступ снова будет ошибкой. – andlabs