Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 自定义分配机制_C++_Memory Management - Fatal编程技术网

C++ 自定义分配机制

C++ 自定义分配机制,c++,memory-management,C++,Memory Management,我正在实现自己的记忆机制。这是我的密码: static tls::main_pool main_pool; static tls::local_pool local_pool(main_pool); void * operator new(size_t n) throw(std::bad_alloc) { return local_pool.new_mem(n); } void operator delete(void * p) throw() { local_pool.fr

我正在实现自己的记忆机制。这是我的密码:

static tls::main_pool main_pool;
static tls::local_pool local_pool(main_pool);

void * operator new(size_t n) throw(std::bad_alloc)
{
    return local_pool.new_mem(n);
}

void operator delete(void * p) throw()
{
    local_pool.free_mem(p);
}
问题是,在我的分配器被销毁后会出现一些操作员删除调用,在分配器初始化时会出现一些操作员新调用。怎么处理

更新:
为了清楚起见,我不在分配器中使用运算符new和delete,因此在某些系统或库调用中会出现问题。

不要使用运算符new初始化分配器。@KerrekSB我不使用它。我用malloc分配内存,并调用运算符new到该内存,然后将其更改为返回get_local_pool.new_memn,并生成一个函数来保证事情已初始化。@KerrekSB哇,似乎正在工作。多谢各位!C++静态初始化顺序的奇观: