我注意到std::aligned_alloc()
进入 C++17,我喜欢它。但是 - 当我需要重新分配时会发生什么?我可以手动执行此操作(假设当前分配地址的可用空间只是我要求的空间量),但标准库中不应该有这样的工具吗?
问问题
560 次
1 回答
5
没有这样的标准调用等效项。
更重要的是,微软最新的 C++ 实现仍然有自己的_aligned_malloc()
,而不是现在标准化的std::aligned_alloc()
,在这里他们解释了原因:
aligned_alloc() 可能永远不会实现,因为 C11 以与我们的实现不兼容的方式指定它(即 free() 必须能够处理高度对齐的分配)。
在他们(微软的)下划线前缀的实现中,他们确实为您服务_aligned_realloc()
:-)
于 2018-08-16T12:48:05.580 回答