zoukankan      html  css  js  c++  java
  • c++中placement new

    c++中的placement new是::operator new的重载版本,用于在已经分配好的内存上创建对象。这样就可以在用户空间对内存进行操作,减少了对象生成的成本,控制对象的地址从而减少内存碎片,对象池估计也是这么搞的吧。

    class A{
    public:
        A(){
            cout<<"A"<<endl;
        }
        ~A(){
            cout<<"~A"<<endl;
        }
    };
    int main()
    {
        void* t=malloc(sizeof(char)*100);
        A* a=new (t)A();
        delete a;
    }

    函数原型:void *operator new( size_t, void *p ) throw()  { return p; }

    上面调用后为: oerator new(sizeof(A),a)。

    最近看netty的源码,buffer竟然使用jemalloc的东西,看来要花点时间把这块给啃下来

  • 相关阅读:
    h5-7
    h5-6
    h5-5
    h5-4
    h5-3
    h5-2
    return
    字符串的常用操作
    字符串中的转义字符
    字典的统计,合并,清空操作
  • 原文地址:https://www.cnblogs.com/gaoxing/p/4251671.html
Copyright © 2011-2022 走看看