我在 C# 中有一些代码,它有一个 com 包装器。此 com 包装器用于本机 c++ 应用程序。c++ 代码使用一种方法,该方法从 c# 库中返回一个类的实例数组。实例来自 SafeArray,如下所示:
for (long i =min; i<=max;i++)
{
IMyInterface *l = (IMyInterface *)malloc(sizeof IMyInterface );
SafeArrayGetElement(array,&i, &l);
<other code>
}
我想释放为实例 l 分配的内存,但是如果我调用
free(l)
然后我崩溃了。
我试过了
VariantClear ((VARIANT*)l);
并使用
SafeArrayDestroy(array)
但我仍然为数组中的每个实例泄漏 4 个字节。
任何想法我应该如何去释放这个记忆?