我对realloc的理解是,如果内存连续超出分配点,它可以尝试扩展当前分配而不复制.
在阅读此https://github.com/facebook/folly/blob/master/folly/docs/FBVector.md时,我发现大多数分配器都避免了就地重新分配
.许多内存分配器不支持就地重新分配,尽管大多数内存分配器都可以.这来自现在臭名昭着的realloc()设计,它不透明地执行就地重新分配或分配memcpy-deallocate循环.这种缺乏控制随后迫使所有基于clib的分配器设计避免就地重新分配,包括C++的new和std:allocator.
正如在另一个问题(为什么C++分配器中没有重新分配功能?)中所回答的那样,C++中缺少重新分配器,其中接受的答案提到这样的分配器会禁止重新分配使用C库但不回答为什么不尝试制作realloc如果可能扩展当前内存?