作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
存在几个古老的 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()
变体中搜索对齐的内存块相结合似乎非常简单。
相关:
最佳答案
Aligned realloc 仅在 Microsoft 中使用 _aligned_realloc
实现功能。没有定义 POSIX 版本,也没有在 Linux 中实现。我一直不明白为什么,因为在 glibc 中编码似乎并不复杂.考虑到宽 SIMD 指令的出现,我认为有人实现它只是时间问题。
目前,只需分配一个新的对齐内存块,复制内容并释放旧指针。无论如何,这不应减慢您的应用程序。
关于c - 真的没有支持对齐的 realloc() 版本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45503469/
我是一名优秀的程序员,十分优秀!