gpt4 book ai didi

c - 真的没有支持对齐的 realloc() 版本吗?

转载 作者:太空狗 更新时间:2023-10-29 16:28:55 24 4
gpt4 key购买 nike

存在几个古老的 malloc() 对齐版本,例如:

#include <stdlib.h>
int posix_memalign(void **memptr, size_t alignment, size_t size);
void *aligned_alloc(size_t alignment, size_t size);

#include <malloc.h>
void *memalign(size_t alignment, size_t size);

(分别起源于 POSIX、glibc 和 Linux libc)。但是 - 我似乎找不到任何提及支持对齐的 realloc() 版本。它真的从未被实现过吗?将非对齐 realloc() 的功能与在对齐的 malloc() 变体中搜索对齐的内存块相结合似乎非常简单。

相关:

Does realloc keep the memory alignment of posix_memalign?

最佳答案

Aligned realloc 仅在 Microsoft 中使用 _aligned_realloc 实现功能。没有定义 POSIX 版本,也没有在 Linux 中实现。我一直不明白为什么,因为在 glibc 中编码似乎并不复杂.考虑到宽 SIMD 指令的出现,我认为有人实现它只是时间问题。

目前,只需分配一个新的对齐内存块,复制内容并释放旧指针。无论如何,这不应减慢您的应用程序。

关于c - 真的没有支持对齐的 realloc() 版本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45503469/

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