青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 26  文章 - 6  trackbacks - 0
<2009年9月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

常用鏈接

留言簿(3)

隨筆分類

隨筆檔案

朋友

  • cqh
  • 大學(xué)室友...

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

如果不滿足內(nèi)存分配請(qǐng)求時(shí),不斷重復(fù)調(diào)用new-handler函數(shù)
當(dāng)前的new-handler可以利用set_new_handler安裝新的new-handler取代它。

////////////////////////////////////////////////////////////
//
//FileName : lianxi.cpp
//Creator  : longshen
//Date : 2009-7-17
//Commet : 處理內(nèi)存不夠
//
////////////////////////////////////////////////////////////
#include <new>
#include 
<iostream>

using namespace std;


/**
* @brief    內(nèi)存不夠的處理    
* @return    __cdecl
*/

void __cdecl noMoreMemory( )
{
   cout 
<< "Unable to satisfy request for memory" << endl;
   
throw bad_alloc( );
   
return;
}



int main( ) 
{
   
//安裝新new-handler函數(shù)
    set_new_handler(noMoreMemory);        //The new handler is used by operator new
   try
   
{
      
while ( 1 ) 
      
{
         
new int[5000000];
         cout 
<< "Allocating 5000000 ints." << endl;
      }

   }

   
catch (exception e)
   
{
      cout 
<< e.what( ) << endl;
   }

   
return 0;
}



   C++不支持專門針對(duì)類的new-handler函數(shù),我們可以自己來(lái)實(shí)現(xiàn)它

////////////////////////////////////////////////////////////
//
//FileName : lianxi.cpp
//Creator  : longshen
//Date : 2009-7-17
//Commet : 處理內(nèi)存不夠
//
////////////////////////////////////////////////////////////
#include <new>
#include 
<iostream>

using namespace std;


/**
* @brief    內(nèi)存不夠的處理    
* @return    __cdecl
*/

void __cdecl noMoreMemory( )
{
   cout 
<< "Unable to satisfy request for memory" << endl;
   
throw bad_alloc( );
   
return;
}



class Kx
{
    
public:
        
static new_handler set_new_handler(new_handler p);
        
static void* operator new(size_t size);
        
int a[10000000];
    
private:
        
static new_handler currentHandler;
}
;


/**
* @brief    設(shè)置類的currentHandler,并返回舊的new-handler
* @param    p    輸入的new-handler函數(shù)
* @return    返回舊的new-handler
*/

new_handler Kx::set_new_handler(new_handler p)
{
    new_handler oldHandler 
= currentHandler;
    currentHandler 
= p;
    
return oldHandler;
}



/**
* @brief    缺省設(shè)置currentHandler為0(即null)
* @return    返回new-handler函數(shù)地址
*/

new_handler Kx::currentHandler;      
// 缺省設(shè)置currentHandler為0(即null)


/**
* @brief    重載new
* @param    size 申請(qǐng)要開辟內(nèi)存的大小
* @return    內(nèi)存空間指針
*/

void* Kx::operator new(size_t size)
{
    new_handler globalHandler 
=                        // 安裝Kx的new_handler
        std::set_new_handler(currentHandler);

    
void* memory;
    
//嘗試分配內(nèi)存
    try
    
{
        memory 
= ::operator new(size);
    }

    
catch(std::bad_alloc&)
    
{
        std::set_new_handler(globalHandler);    
//恢復(fù)舊的new_handler
        throw;                                //拋出異常
    }


    std::set_new_handler(globalHandler);        
//恢復(fù)舊的new_handler
    
    
return memory;
}



int main()
{
    
    
try {
        
while(1)
        
{
            
//把noMoreMemroy設(shè)置為Kx的new-handling函數(shù)
            Kx::set_new_handler(noMoreMemory);            
            

            Kx
* pkx = new Kx;            //如果內(nèi)存分配失敗,調(diào)用noMoreMemory


            
string* pszStr = new string//如果內(nèi)存分配失敗,調(diào)用全局new-handling函數(shù)

            
//設(shè)Kx的new-handling函數(shù)為空
            Kx::set_new_handler(0);        

            Kx
* pkx2 = new Kx;        //如果內(nèi)存分配失敗,立即拋出異常
                                    
//類Kx沒有new-handling函數(shù)

            cout 
<< "Allocating 20000000 ints." << endl;
        }

    }

    
catch ( exception e )
    
{
        cout 
<< e.what( ) << endl;
    }

    
return 0;
}




 

posted on 2009-07-17 16:23 longshen 閱讀(680) 評(píng)論(0)  編輯 收藏 引用 所屬分類: VC++
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            新67194成人永久网站| 激情五月婷婷综合| 久久综合伊人77777麻豆| 制服丝袜激情欧洲亚洲| 亚洲国产成人91精品| 久久九九精品99国产精品| 这里只有精品电影| 亚洲人成在线观看网站高清| 韩国在线一区| 国产亚洲福利社区一区| 欧美日韩在线观看视频| 欧美黄色日本| 久久婷婷国产综合尤物精品| 久久gogo国模裸体人体| 亚洲欧洲av一区二区| 亚洲视频网站在线观看| 一区二区三区国产盗摄| 亚洲精品在线观看免费| 亚洲国产影院| 欧美激情中文字幕乱码免费| 麻豆精品视频在线| 裸体一区二区| 欧美国产视频在线观看| 免费成人在线视频网站| 狼人社综合社区| 久久综合亚洲社区| 麻豆成人综合网| 免费的成人av| 亚洲国产99| 亚洲人被黑人高潮完整版| 亚洲国产精品综合| 亚洲区免费影片| 99精品福利视频| 一区二区日韩精品| 亚洲自拍16p| 欧美一区二区在线观看| 久久精品一区中文字幕| 久久人人精品| 欧美激情亚洲一区| 欧美日韩xxxxx| 欧美日韩综合视频网址| 国产精品一区二区女厕厕| 国产日韩欧美三级| 在线成人小视频| 亚洲欧洲一区二区三区在线观看| 亚洲激情另类| 在线中文字幕不卡| 欧美在线视频一区二区| 久久免费视频观看| 亚洲国产成人久久综合一区| 亚洲精品影视| 香蕉成人伊视频在线观看| 久久黄色小说| 欧美精品大片| 国产精品一区一区| 亚洲风情在线资源站| av成人手机在线| 久久高清免费观看| 亚洲电影专区| 亚洲一级免费视频| 久久嫩草精品久久久久| 欧美日韩国产精品专区| 国产免费成人在线视频| 在线精品视频在线观看高清| 99视频精品| 久久成人这里只有精品| 欧美激情第六页| 亚洲一区二区三区精品在线观看| 久久精品视频导航| 欧美日韩二区三区| 国内精品美女av在线播放| 亚洲精选视频免费看| 欧美在线综合视频| 亚洲七七久久综合桃花剧情介绍| 亚洲综合好骚| 欧美激情中文字幕一区二区| 国产视频一区三区| 99re热这里只有精品免费视频| 性欧美video另类hd性玩具| 欧美国产日本在线| 香蕉国产精品偷在线观看不卡| 欧美激情第六页| 狠狠入ady亚洲精品经典电影| 亚洲最新色图| 毛片精品免费在线观看| 中文国产成人精品| 欧美激情成人在线视频| 国产综合香蕉五月婷在线| 亚洲天堂成人| 欧美黄色精品| 久久精品亚洲乱码伦伦中文| 国产精品夫妻自拍| 日韩亚洲综合在线| 男人的天堂亚洲在线| 性欧美8khd高清极品| 欧美午夜国产| 日韩视频在线观看一区二区| 蜜桃久久精品乱码一区二区| 亚洲综合成人婷婷小说| 欧美日韩国产精品| 亚洲精品国产精品乱码不99| 久久人人看视频| 午夜精品一区二区三区四区| 欧美午夜激情视频| 夜夜精品视频| 亚洲国产成人在线| 久久日韩精品| 激情成人中文字幕| 久久免费国产精品1| 亚洲欧美成人在线| 国产精品视频yy9299一区| 亚洲视频欧洲视频| 亚洲蜜桃精久久久久久久| 欧美大片免费看| 亚洲黄色一区二区三区| 蜜桃视频一区| 久久免费国产精品| 伊人久久亚洲热| 免费视频一区二区三区在线观看| 欧美一区1区三区3区公司| 国产欧美亚洲视频| 欧美中文字幕第一页| 亚洲男人的天堂在线观看| 国产精品每日更新| 香蕉久久夜色| 欧美一区三区二区在线观看| 国产日韩欧美在线播放| 久久久久久久尹人综合网亚洲 | 韩国精品久久久999| 亚洲欧美日韩国产一区二区三区| 亚洲另类在线视频| 欧美午夜一区二区| 亚洲综合激情| 亚洲欧美日韩精品久久亚洲区 | 欧美巨乳在线| 亚洲精品一区二区三区四区高清 | 久久九九99视频| 在线精品观看| 亚洲国产高清一区| 欧美久久在线| 午夜一级久久| 久久成人国产精品| 亚洲高清视频的网址| 亚洲国产精品一区二区www| 欧美人与性动交cc0o| 亚洲一区中文字幕在线观看| 亚洲一区二区三区影院| 国产在线精品一区二区中文| 麻豆免费精品视频| 欧美精品一区二| 亚洲免费网站| 久久av老司机精品网站导航| 亚洲第一区在线| 亚洲精品韩国| 国产日韩久久| 亚洲高清免费视频| 国产精品v亚洲精品v日韩精品| 欧美在线日韩精品| 欧美成人中文字幕在线| 在线视频你懂得一区| 亚洲欧美一区二区在线观看| 亚洲电影网站| 一区二区三区视频在线看 | 一区二区三区导航| 亚洲男人影院| 亚洲黄网站黄| 亚洲网站啪啪| 亚洲高清三级视频| 一区二区三区欧美激情| 一区二区三区在线视频播放| 亚洲精品久久久久久久久久久久久| 国产精品久久亚洲7777| 欧美freesex8一10精品| 国产精品大全| 亚洲电影免费观看高清完整版在线观看| 欧美日韩网站| 蜜臀av国产精品久久久久| 欧美性大战久久久久久久蜜臀| 久久久精品tv| 欧美日韩一区二区三区在线视频| 久久亚洲精品一区二区| 国产精品高潮呻吟| 免费观看成人网| 国产精品区一区二区三| 亚洲国产精品一区二区www在线| 国产免费亚洲高清| 日韩一级黄色av| 91久久线看在观草草青青| 亚洲欧美偷拍卡通变态| 一本久道久久综合狠狠爱| 久久国产综合精品| 性伦欧美刺激片在线观看| 欧美日韩美女| 亚洲高清不卡在线| 精品va天堂亚洲国产| 亚洲欧美综合国产精品一区| 中文日韩电影网站| 欧美激情第9页| 欧美18av| 在线观看精品一区|