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时一切都清除了,但是这个空白会发生什么?
我认为您对内存管理的理解存在一些基本问题.在这种情况下,不,您不需要显式释放任何内存.你没有打过电话new,所以你不需要打电话delete. buffer只存在于堆栈上,并且在此方法返回时将消失.
| 归档时间: |
|
| 查看次数: |
776 次 |
| 最近记录: |