std :: aligned_alloc()的重新分配等效项是什么?

ein*_*ica 5 c++ memory-alignment dynamic-allocation c++17 memory-reallocation

我注意到std::aligned_alloc()进入C ++ 17,我喜欢它。但是-当我需要重新分配时会发生什么?我可以手动执行此操作(假设当前分配的地址处的可用空间仅是我要求的空间量),但是标准库中是否不应该提供此功能?

Rei*_*ica 5

没有这样的标准呼叫等价物。

更重要的是,微软最新的 C++ 实现仍然有自己的_aligned_malloc()而不是现在标准化的std::aligned_alloc()在这里他们解释了原因

aligned_alloc() 可能永远不会实现,因为 C11 以与我们的实现不兼容的方式指定它(即 free() 必须能够处理高度对齐的分配)。

在他们(微软的)下划线前缀的实现中,他们确实为您服务_aligned_realloc():-)