Difference between aligned malloc and standard malloc?

前端 未结 1 1357
無奈伤痛
無奈伤痛 2021-01-24 01:26

I\'m new to malloc and aligned malloc. I know how to use them. However, I don\'t know exactly in which case we should use aligned malloc instead of standard malloc. Can you expl

相关标签:
1条回答
  • 2021-01-24 01:51

    The glibc documentation makes it reasonably clear where you should use 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.

    The C standard already guarantees that malloc will return a suitably aligned memory block for any of the standard types but there may be situations in which you want or need stricter alignment.

    As one example, I seem to recall that SSE2 (SIMD) instructions need their data aligned on 16-byte boundaries so you could use aligned_alloc to give you that even on systems where malloc only guarantees alignment to an 8-byte boundary.

    0 讨论(0)
提交回复
热议问题