gpt4 book ai didi

c++ - 这是内存泄漏吗? (C++ BSTR)

转载 作者:行者123 更新时间:2023-11-30 02:03:14 25 4
gpt4 key购买 nike

我有这样一个函数:

bool Function (BSTR paramter1, BSTR parameter2)
{
// My Code
}

我这样调用它:

Function(SysAllocString(L"Example1"), SysAllocString(L"Example2"));

我的理解是,我用 SysAllocString 分配的内容必须用 SysFreeString 释放。

BSTR 似乎是 typedef OLECHAR *BSTR;

的 typedef

既然是指针,我只要加上应该就可以了

SysFreeString(parameter1);
SysFreeString(parameter2);

Function 中,不要命名 BSTR

我这里的所有推理都是正确的,只要加上这两行,就不会内存泄漏了吗?我还有很多东西要学。非常感谢您的宝贵时间。

最佳答案

是的,你是对的。但这通常不是设计软件的合适方式。通常,释放一个对象的责任交给了分配它的例程,或者一些相关的例程。您应该能够调用 Function 使用不需要立即释放的参数,或者使用在本地声明而不是在堆上分配的参数。

关于c++ - 这是内存泄漏吗? (C++ BSTR),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12226596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com