我什么时候需要释放内存?

ext*_*tor 0 c++ memory-management visual-c++

我在一个类中使用此代码来使webbrowser控件访问一个网站:

void myClass::visitWeb(const char *url)
{
    WCHAR buffer[MAX_LEN];
    ZeroMemory(buffer, sizeof(buffer));
    MultiByteToWideChar(CP_ACP, MB_ERR_INVALID_CHARS, url, strlen(url), buffer, sizeof(buffer)-1);

    VARIANT vURL;
    vURL.vt = VT_BSTR;
    vURL.bstrVal = SysAllocString(buffer);

    // webbrowser navigate code...

    VariantClear(&vURL);
}
Run Code Online (Sandbox Code Playgroud)

我从另一个void函数调用visitWeb,该函数在app的handlemessage()上调用.我需要在这里做一些内存释放吗?我看到varurClear正在释放vURL,但是我应该为缓冲区释放内存吗?我被告知在另一个bool我在同一个应用程序中我不应该释放任何东西,因为当bool返回true/false时一切都清除了,但是这个空白会发生什么?

Car*_*rum 5

我认为您对内存管理的理解存在一些基本问题.在这种情况下,不,您不需要显式释放任何内存.你没有打过电话new,所以你不需要打电话delete. buffer只存在于堆栈上,并且在此方法返回时将消失.