6

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

4

1 回答 1

5

没有这样的标准调用等效项。

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

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

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

于 2018-08-16T12:48:05.580 回答