我重载了新函数,但不幸的是,我从来没有能够执行全局处理程序来请求我的编译器上的更多内存访问。如果我们调用全局处理程序来请求更多内存,我也不明白下面的代码片段是如何分配给 P 的。
如果有人能对此有所了解,我将不胜感激
void * Pool:: operator new ( size_t size ) throw( const char *)
{
int n=0;
while(1)
{
void *p = malloc (100000000L);
if(p==0)
{
new_handler ghd= set_new_handler(0);//deinstall curent handler
set_new_handler(ghd);// install global handler for more memory access
if(ghd)
(*ghd)();
else
throw "out of memory exception";
}
else
{
return p;
}
}
}