delphi - GetMem 和 AllocMem 有什么区别?
问题描述
在 Delphi 中,我看到了几个类似的函数可以用来分配内存,例如 GetMem 和 AllocMem。它们之间有什么区别?
我阅读了文档,才发现 GetMem 在分配后不会初始化内存,而 AllocMem 会。
那么调用GetMem后是否需要初始化内存呢?医生说是的。但是我在一些 Delphi 源代码中看到他们没有调用 Initialize。
以及我是否需要在使用完内存后对其进行最终确定?我在一些 Delphi 源代码中看到,他们这样做,但他们不这样做。
谢谢
解决方案
逻辑看起来很简单——如果你需要零初始化缓冲区,你可以使用AllocMem
.
如果您在任何情况下都用自己的数据填充缓冲区,并且从不使用默认内容 - 您可以使用GetMem
.
推荐阅读
- javascript - 转换文件时超出最大调用堆栈大小
- class - 列表有超过 1 行分配给 SObject
- java - 在 if 语句的条件内调用函数
- mysql - 为什么整数转换不适用于整数 group_concat() 列表?
- python - 为什么更新时套索错误增加?(+评价)
- loops - 在 Ansible 中构建循环
- javascript - 如何引用数组元素作为 .backgroundImage 的目标?
- flutter - 一个接一个地为相同类型的小部件设置动画的更好方法?
- amazon-web-services - 上传文件或发送电子邮件 aws 时出现身份验证错误
- list - Flutter:将列表从一页传递到另一页