c – 存储分配器 – 它是什么?
发布时间:2020-12-16 03:43:24 所属栏目:百科 来源:网络整理
导读:我知道C和C中的存储类(静态,外部,自动,寄存器,C也增加了可变性和一些特定于编译器的存储类),但我无法弄清楚存储分配器是什么.我不认为它是指在STL上可实现的内存分配器,简单来说是什么? 解决方法 它是operator new和operator delete背后的任何东西(不要与ne
我知道C和C中的存储类(静态,外部,自动,寄存器,C也增加了可变性和一些特定于编译器的存储类),但我无法弄清楚存储分配器是什么.我不认为它是指在STL上可实现的内存分配器,简单来说是什么?
解决方法
它是operator new和operator delete背后的任何东西(不要与new运算符和delete运算符混淆). operator new从free store分配内存,operator delete释放先前由operator new分配的内存,以便重用.当代码执行foo * ptr = new foo(new operator)时,编译器会生成调用operator new的代码以获取正确的存储字节数,然后调用foo的构造函数.当代码删除ptr(删除操作符)时,编译器调用foo的析构函数,然后调用operator delete来释放内存.
请注意,这是C 03标准中使用该术语的方式.在C 11标准中,它也用于指代标准分配器. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |