【发布时间】:2020-09-23 00:00:25
【问题描述】:
我使用 Malloc 分配内存。使用后我使用 delete 来释放内存。要将此内存释放给操作系统,我使用 malloc_trim(0)。但是不推荐使用 Malloc_trim (0)。所以我想知道 malloc_trim(0) 是否还有其他选择。顺便说一下语言是cpp
【问题讨论】:
-
我使用 Malloc 分配内存。使用后我使用 delete 释放内存。 仅供参考:
malloc()或calloc()分配的内存必须由free()。由new分配的内存必须由delete释放(new[]分别由delete[])混合malloc()和delete是Undefined Behavior(即使它似乎工作)。 -
“我使用 Malloc 分配内存。使用后我使用 delete 来释放内存。” - 我希望你使用
free(),而不是delete。为什么你甚至在 C++ 中使用这些函数?我想另一种方法是不使用 C 中的内存管理功能,或者在现代 C++ 中,尽可能避免手动内存管理。 -
它真的被弃用了吗?你在哪里读到的?
标签: c++ memory memory-management