gpt4 book ai didi

ubuntu - 对齐的 malloc 和标准 malloc 之间的区别?

转载 作者:行者123 更新时间:2023-12-04 18:25:38 28 4
gpt4 key购买 nike

我是 malloc 和对齐 malloc 的新手。我知道如何使用它们。但是,我不知道在什么情况下我们应该使用对齐的 malloc 而不是标准的 malloc。你能给我解释一下吗?

最佳答案

glibc documentation合理明确应该在哪里使用 aligned_alloc:

The address of a block returned by malloc or realloc in GNU systems is always a multiple of eight (or sixteen on 64-bit systems). If you need a block whose address is a multiple of a higher power of two than that, use aligned_alloc or posix_memalign.

C 标准已经保证 malloc 将为任何标准类型返回适当对齐的内存块,但在某些情况下您可能想要或需要更严格的对齐方式。

举个例子,我似乎记得 SSE2 (SIMD) 指令需要它们的数据在 16 字节边界上对齐,因此您可以使用 aligned_alloc 为您提供即使在 malloc 仅保证与 8 字节边界对齐。

关于ubuntu - 对齐的 malloc 和标准 malloc 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39677063/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com