如何解决我需要对齐的内存存储来加载文件吗?
我需要将使用fstream从文件加载到内存中的字体传递到FT library function中。它必须是基本char指针。现在,经过一番阅读之后,我不确定是否需要分配实际对齐的内存来加载文件。我认为创建字体文件时,它会包含不同类型的数据,并且如果将文件加载到未对齐的char数组中(即,它从未对齐的基地址开始),可能会出现一些问题(至少,性能问题)。也许我错了,一切都很好。您怎么看,您知道什么?
解决方法
进一步调查后,我发现我不需要显式对齐。从关于分配函数的标准 [basic.stc.dynamic.allocation] :
返回的指针应适当对齐,以便可以将其转换为指向任何合适的完整对象类型的指针。
从cppreference.com关于std::max_align_t
:
由诸如
std::malloc
之类的分配函数返回的指针适用于任何对象,这意味着它们的对齐至少严格地与std::max_align_t
一样。
因此,对齐已由编译器处理。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。