gpt4 book ai didi

c++ - CLR中 native 堆的内存管理

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

我想了解 CLR 中 native 堆的内存管理。我知道 CLR 管理堆。例如,我正在使用 C++/CLI 绑定(bind)库,它发展了一些 C++ 库。在其工作期间,C++ 库可以分配对象。这些对象会在 CLR 的 native 堆上分配吗?据我了解,CLR 具有 native 堆和托管堆,它们将在 CLR 运行期间创建。

最佳答案

CLR 没有“ native 堆”。当您在代码中使用 malloc()new 时,您就使用了 C 运行时分配器。与您在 native C 或 C++ 程序中使用的完全相同。对于 VS 版本 2010 或更低版本,它从其自己的堆(使用 HeapCreate 创建)分配,对于 2012 及更高版本,它从默认进程堆(GetProcessHeap)分配。

根本没有“管理”,你负责调用free()delete,就像你在原生C或C++程序中一样。如果不这样做会导致内存泄漏,垃圾收集器根本帮不了你。

关于c++ - CLR中 native 堆的内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38396448/

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