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

时间:2018-08-16 12:14:45

标签: c++ c++17 memory-alignment dynamic-allocation memory-reallocation

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

1 个答案:

答案 0 :(得分:2)

没有等效的标准呼叫。

例如,Microsoft的最新C ++实现仍然具有自己的_aligned_malloc()而不是std::aligned_alloc()。还有here they explain why

  

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

在带有下划线前缀的仅MS版本的C ++库实现中,它们确实通过_aligned_realloc()为您服务:-)