在堆上分配的内存块是否保证对齐?
我正在使用 FastMM 支持的 Delphi 2010 进行原型设计,每次我使用 GetMem 分配内存时,结果指针都会与 QWORD 边界对齐。但我应该依赖它吗?
I'm prototyping with FastMM powered Delphi 2010 and every time i allocate memory with GetMem
resulting pointer is aligned to QWORD boundary. But should i rely on that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以明确指定它:http://docwiki.embarcadero.com/RADStudio/en/Configuring_the_Memory_Manager
You can explicitly specify it: http://docwiki.embarcadero.com/RADStudio/en/Configuring_the_Memory_Manager
好的,结果:
快速测试竞赛揭示了 D7 附带的默认 Borland 堆管理器通过了 WORD 和 DWORD,但未能通过 QWORD 和 PARA 对齐测试用例。因此,需要提供 MM 或手动检查/调整。谢谢大家!
OK, findings:
Quick test race revealed what default Borland heap manager shipped with D7 passes WORD and DWORD, but fails QWORD and PARA alignment testcases. Therefore either contributed MM or manual checks/adjustments is required. Thanks, everyone!