首页 > 解决方案 > GetMem 和 AllocMem 有什么区别?

问题描述

在 Delphi 中,我看到了几个类似的函数可以用来分配内存,例如 GetMem 和 AllocMem。它们之间有什么区别?

我阅读了文档,才发现 GetMem 在分配后不会初始化内存,而 AllocMem 会。

那么调用GetMem后是否需要初始化内存呢?医生说是的。但是我在一些 Delphi 源代码中看到他们没有调用 Initialize。

以及我是否需要在使用完内存后对其进行最终确定?我在一些 Delphi 源代码中看到,他们这样做,但他们不这样做。

谢谢

标签: delphimemoryallocation

解决方案


逻辑看起来很简单——如果你需要零初始化缓冲区,你可以使用AllocMem.

如果您在任何情况下都用自己的数据填充缓冲区,并且从不使用默认内容 - 您可以使用GetMem.


推荐阅读