我知道 C 和 C++ 中的存储类(static、extern、auto、register,C++ 还添加了可变的和一些特定于编译器的类)但我不知道什么是存储分配器 是。我不认为它指的是可在 STL 上实现的内存分配器,简单来说它是什么?
最佳答案
它是 operator new
和 operator delete
后面的任何东西(不要与 new
运算符和 delete混淆)
运算符)。 operator new
从空闲存储中分配内存,operator delete
释放先前由 operator new
分配的内存,以便可能的重用。当代码执行 foo *ptr = new foo
(new
运算符)时,编译器生成调用 operator new
的代码以获得正确的字节数存储,然后调用 foo
的构造函数。当代码执行delete ptr
(delete
运算符)时,编译器调用foo
的析构函数,然后调用operator delete
来释放内存。
请注意,这是 C++03 标准中使用该术语的方式。在 C++11 标准中,它也用于指代标准分配器。
关于c++ - 存储分配器 - 它是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15115766/