SysFreeString没有释放变量

Kar*_*nda -1 c++ com winapi visual-c++

任何人都可以帮助我理解为什么下面的代码在分配后没有释放内存.

BSTR ys;
{
    ys = ::SysAllocString(L"Asdfghjk");
    {
        ::SysFreeString(ys);
    }
}
wcout << ys; // *I could see "Asdfghjk" in console window*
Run Code Online (Sandbox Code Playgroud)

Cod*_*ray 6

释放的内存,但它不归零出来,所以它只是恰巧,它仍包含先前的值.

释放后(在调用中wcout)对内存的使用是未定义的行为.它似乎工作,但只是偶然.