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

隨筆 - 26  文章 - 6  trackbacks - 0
<2009年7月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用鏈接

留言簿(3)

隨筆分類

隨筆檔案

朋友

  • cqh
  • 大學室友...

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

如果不滿足內存分配請求時,不斷重復調用new-handler函數
當前的new-handler可以利用set_new_handler安裝新的new-handler取代它。

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

using namespace std;


/**
* @brief    內存不夠的處理    
* @return    __cdecl
*/

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



int main( ) 
{
   
//安裝新new-handler函數
    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++不支持專門針對類的new-handler函數,我們可以自己來實現它

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

using namespace std;


/**
* @brief    內存不夠的處理    
* @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    設置類的currentHandler,并返回舊的new-handler
* @param    p    輸入的new-handler函數
* @return    返回舊的new-handler
*/

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



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

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


/**
* @brief    重載new
* @param    size 申請要開辟內存的大小
* @return    內存空間指針
*/

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

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

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


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



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

            Kx
* pkx = new Kx;            //如果內存分配失敗,調用noMoreMemory


            
string* pszStr = new string//如果內存分配失敗,調用全局new-handling函數

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

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

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

    }

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

    
return 0;
}




 

posted on 2009-07-17 16:23 longshen 閱讀(675) 評論(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>
            久久精品一区二区三区中文字幕| 性色av一区二区怡红| 激情视频一区| 亚洲精品影院| 欧美 日韩 国产精品免费观看| 亚洲视频精品在线| 欧美极品影院| 99精品热视频| 免费高清在线视频一区·| 在线观看欧美黄色| 亚洲无人区一区| 久久精品视频免费| 欧美黑人在线观看| 精品成人一区二区| 久久亚洲一区二区三区四区| 亚洲欧美日韩在线| 国模套图日韩精品一区二区| 亚洲一区三区视频在线观看| 99re6这里只有精品| 免费不卡在线观看| 亚洲天堂偷拍| 欧美伊久线香蕉线新在线| 伊人激情综合| 国产亚洲一区在线播放| 久久久久久网站| 欧美黄在线观看| 久久精品在线观看| 亚洲欧美日韩中文视频| 久久国产乱子精品免费女| 亚洲免费观看高清完整版在线观看熊| 亚洲精品色图| 黄色av一区| 在线综合亚洲| 亚洲日本欧美| 欧美在线视频观看| 亚洲综合首页| 欧美视频不卡| 91久久久一线二线三线品牌| 国产精品萝li| 欧美亚洲一区在线| 欧美午夜在线视频| 欧美成人r级一区二区三区| 亚洲嫩草精品久久| 这里只有精品视频| 久久久久久穴| 欧美va亚洲va国产综合| 狠狠色狠狠色综合| 欧美一区二区免费| 久久午夜影视| 精品二区视频| 麻豆免费精品视频| 亚洲黄色在线观看| 这里是久久伊人| 亚洲第一精品久久忘忧草社区| 国产精品日韩专区| 欧美一区二区三区四区在线观看地址 | 亚洲深夜影院| 欧美激情综合亚洲一二区| 美女黄毛**国产精品啪啪| 激情成人综合| 性欧美8khd高清极品| 日韩视频在线观看免费| 欧美日本在线看| 午夜精品久久久久久久久久久久久| 午夜精品久久久久久久白皮肤| 国产精品香蕉在线观看| 久久av最新网址| 亚洲精品久久久久中文字幕欢迎你| 中国成人在线视频| 怡红院精品视频| 国产精品日韩久久久久| 欧美国产亚洲另类动漫| 欧美在线不卡| 午夜久久美女| 99ri日韩精品视频| 男同欧美伦乱| 欧美一级黄色录像| 一本一道久久综合狠狠老精东影业 | 久久亚洲一区| 在线亚洲一区二区| 欧美风情在线观看| 亚洲人成啪啪网站| 国产三级欧美三级| 欧美日韩午夜在线| 美女主播精品视频一二三四| 午夜视频一区在线观看| 中国日韩欧美久久久久久久久| 久久一二三四| 玖玖玖国产精品| 久久全国免费视频| 国产亚洲精品一区二区| 国产精品区免费视频| 欧美日韩少妇| 国产精品久久久久久久久久直播 | 亚洲日本成人| 亚洲精品一区在线| 亚洲精品久久久蜜桃| 亚洲精品韩国| 亚洲欧美三级在线| 久久国产一区二区三区| 久久亚裔精品欧美| 欧美人交a欧美精品| 欧美日韩一区二区三区视频| 欧美成熟视频| 久久夜色精品国产亚洲aⅴ| 久热精品视频在线| 欧美精品久久一区二区| 国产精品视频免费在线观看| 韩国欧美国产1区| 99精品欧美| 久久国产精品网站| 亚洲午夜在线观看视频在线| 久久精品国产免费观看| 欧美激情精品久久久久久变态| 亚洲人成网站在线播| 亚洲精品久久久久久下一站 | 欧美人交a欧美精品| 国产欧美亚洲日本| 91久久中文| 美国三级日本三级久久99| 欧美成人免费网| 亚洲欧美日韩国产一区| 欧美日韩ab| 国产欧美日韩| 亚洲欧美日韩国产中文| 亚洲欧洲日产国码二区| 久久久久五月天| 国内精品国语自产拍在线观看| 国产欧美综合在线| 欧美久久精品午夜青青大伊人| 国产日韩一区二区三区在线| 亚洲视频观看| 亚洲一卡久久| 亚洲欧美日韩国产| 亚洲全部视频| 欧美精品成人一区二区在线观看| 国产精品露脸自拍| 亚洲一区中文字幕在线观看| 牛牛影视久久网| 欧美国产精品久久| 午夜日韩激情| 欧美国产三区| 欧美日本亚洲韩国国产| 欧美亚洲综合网| 欧美大胆人体视频| 久久综合伊人77777蜜臀| 欧美日韩免费观看中文| 狂野欧美激情性xxxx欧美| 美女视频一区免费观看| 亚洲一卡久久| 欧美极品一区| 亚洲电影在线播放| 激情综合电影网| 亚洲欧美日韩国产中文| 在线中文字幕一区| 欧美日韩欧美一区二区| 欧美va亚洲va国产综合| 国产自产在线视频一区| 午夜视频在线观看一区二区三区 | 欧美黄色大片网站| 国产日韩精品视频一区二区三区| 亚洲日本视频| 一本色道久久综合狠狠躁的推荐| 久久亚洲精品一区| 男人的天堂亚洲| 亚洲国产一区二区在线| 老鸭窝亚洲一区二区三区| 美女视频一区免费观看| 在线成人欧美| 欧美日本中文| 亚洲欧美另类中文字幕| 久久字幕精品一区| 香蕉av福利精品导航| 午夜国产精品视频免费体验区| 欧美亚洲第一区| 欧美一进一出视频| 亚洲高清视频在线| 亚洲欧美激情诱惑| 亚洲成色777777女色窝| 欧美午夜激情视频| 久久av红桃一区二区小说| 欧美激情一区二区三区| 亚洲香蕉在线观看| 国产在线精品一区二区夜色| 亚洲国产另类精品专区| 亚洲国产成人久久| 国产精品videosex极品| 久久久99国产精品免费| 99国产精品国产精品久久 | 久久久999国产| 亚洲理论在线观看| 尤物在线精品| 国产欧美一区二区三区久久| 欧美国产免费| 久久乐国产精品| 亚欧成人精品| 亚洲午夜精品网| 亚洲精品视频在线看| 免费看亚洲片| 免费观看30秒视频久久|