<分区>
在 C++ 规范中,术语“自动”和“动态”存储可以说比“堆栈”和“堆”更可取,因为 C++ 规范不要求使用堆栈/堆模型专门实现分配/解除分配。
除了堆栈和堆之外,是否还有其他分配/释放模型?
<分区>
在 C++ 规范中,术语“自动”和“动态”存储可以说比“堆栈”和“堆”更可取,因为 C++ 规范不要求使用堆栈/堆模型专门实现分配/解除分配。
除了堆栈和堆之外,是否还有其他分配/释放模型?
最佳答案
已经对分配器(无论幸运与否)进行了大量研究,具有不同的内存布局、隔离等。Andrei Alexandrescu 撰写了关于这些的精彩演讲 CppCon 2015: Andrei Alexandrescu “std::allocator...” .您可能会发现它很有用。
他提供的其中一个例子可能会阐明一些可能性:
typedef Segregator<4096,
Segregator<128,
Freelist<Mallocator, 0, 128>,
MediumAllocator>,
Mallocator>
Allocator;
分配策略:
malloc
)分配内存块。因此,根据对象的类型,您可以使用不同的分配策略(还有基于堆栈的分配器可供选择)。
关于c++ - 除了栈和堆模型之外,C++ 还实现了哪些其他形式的自动和动态存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37656427/