gpt4 book ai didi

c++ - 在 DLL 中完成分配时释放客户端中的内存?

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

我创建了一个常规 dll,其中我有一个方法 GetRecordRecordInfo 结构分配内存。

struct RecordInfo{
// Some Data member
}

BOOL GetRecord(RecordInfo *& pRecordInfo)
{
// Allocate RecordInfo, fill data and return as out paramter.
}

现在我从 MFC 应用程序访问这个 dll 并完成我的工作。我使用 delete 在客户端中释放 RecordInfo。

delete pRecordInfo;

在 Release模式下没有问题,但在 Debug模式下应用程序显示断言失败。有人可以解释这种行为背后的原因吗。

最佳答案

内存分配和释放应该在组件/dll 的同一侧完成。

一个更优雅的解决方案是填充 std::unique_ptr<RecordInfo>相反。

关于c++ - 在 DLL 中完成分配时释放客户端中的内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12509140/

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