pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

  • <tfoot id='YkMjn'></tfoot>

    <small id='YkMjn'></small><noframes id='YkMjn'>

    <legend id='YkMjn'><style id='YkMjn'><dir id='YkMjn'><q id='YkMjn'></q></dir></style></legend>

      1. <i id='YkMjn'><tr id='YkMjn'><dt id='YkMjn'><q id='YkMjn'><span id='YkMjn'><b id='YkMjn'><form id='YkMjn'><ins id='YkMjn'></ins><ul id='YkMjn'></ul><sub id='YkMjn'></sub></form><legend id='YkMjn'></legend><bdo id='YkMjn'><pre id='YkMjn'><center id='YkMjn'></center></pre></bdo></b><th id='YkMjn'></th></span></q></dt></tr></i><div class="hl917vr" id='YkMjn'><tfoot id='YkMjn'></tfoot><dl id='YkMjn'><fieldset id='YkMjn'></fieldset></dl></div>
          <bdo id='YkMjn'></bdo><ul id='YkMjn'></ul>

        捕獲“堆棧溢出"遞歸 C++ 函數(shù)中的異常

        Catching quot;Stack Overflowquot; exceptions in recursive C++ functions(捕獲“堆棧溢出遞歸 C++ 函數(shù)中的異常)
      2. <tfoot id='Nio3z'></tfoot>
          <bdo id='Nio3z'></bdo><ul id='Nio3z'></ul>
          <i id='Nio3z'><tr id='Nio3z'><dt id='Nio3z'><q id='Nio3z'><span id='Nio3z'><b id='Nio3z'><form id='Nio3z'><ins id='Nio3z'></ins><ul id='Nio3z'></ul><sub id='Nio3z'></sub></form><legend id='Nio3z'></legend><bdo id='Nio3z'><pre id='Nio3z'><center id='Nio3z'></center></pre></bdo></b><th id='Nio3z'></th></span></q></dt></tr></i><div class="77jn5p1" id='Nio3z'><tfoot id='Nio3z'></tfoot><dl id='Nio3z'><fieldset id='Nio3z'></fieldset></dl></div>

              <legend id='Nio3z'><style id='Nio3z'><dir id='Nio3z'><q id='Nio3z'></q></dir></style></legend>

                  <small id='Nio3z'></small><noframes id='Nio3z'>

                    <tbody id='Nio3z'></tbody>
                1. 本文介紹了捕獲“堆棧溢出"遞歸 C++ 函數(shù)中的異常的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

                  問題描述

                  是否可以在遞歸 C++ 函數(shù)中捕獲堆棧溢出異常?如果是,怎么辦?

                  Is it possible to catch a stack overflow exception in a recursive C++ function? If so, how?

                  那么在這種情況下會發(fā)生什么

                  so what will happen in this case

                  void doWork()
                  {
                  
                       try() {
                  
                       doWork();    
                       }
                  
                  
                       catch( ... )  {
                  
                       doWork();    
                       }
                  }  
                  

                  我不是在尋找特定操作系統(tǒng)的答案.只是一般

                  I am not looking for an answer to specific OS. Just in general

                  推薦答案

                  這本身并不是一個例外,但如果您只想將堆棧使用限制在一個固定的數(shù)量,您可以這樣做:

                  It's not an exception per se, but if you just want to be able to limit your stack usage to a fixed amount, you could do something like this:

                  #include <stdio.h>
                  
                  // These will be set at the top of main()
                  static char * _topOfStack;
                  static int _maxAllowedStackUsage;
                  
                  int GetCurrentStackSize()
                  {
                     char localVar;
                     int curStackSize = (&localVar)-_topOfStack;
                     if (curStackSize < 0) curStackSize = -curStackSize;  // in case the stack is growing down
                     return curStackSize;
                  }
                  
                  void MyRecursiveFunction()
                  {
                     int curStackSize = GetCurrentStackSize();
                     printf("MyRecursiveFunction:  curStackSize=%i
                  ", curStackSize);
                  
                     if (curStackSize < _maxAllowedStackUsage) MyRecursiveFunction();
                     else
                     {
                        printf("    Can't recurse any more, the stack is too big!
                  ");
                     }
                  }
                  
                  int main(int, char **)
                  {
                     char topOfStack;
                     _topOfStack = &topOfStack;
                     _maxAllowedStackUsage = 4096;  // or whatever amount you feel comfortable allowing
                  
                     MyRecursiveFunction();
                     return 0;
                  }
                  

                  這篇關(guān)于捕獲“堆棧溢出"遞歸 C++ 函數(shù)中的異常的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

                  【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

                  相關(guān)文檔推薦

                  In what ways do C++ exceptions slow down code when there are no exceptions thown?(當(dāng)沒有異常時,C++ 異常會以何種方式減慢代碼速度?)
                  Why catch an exception as reference-to-const?(為什么要捕獲異常作為對 const 的引用?)
                  When and how should I use exception handling?(我應(yīng)該何時以及如何使用異常處理?)
                  Scope of exception object in C++(C++中異常對象的范圍)
                  Catching exceptions from a constructor#39;s initializer list(從構(gòu)造函數(shù)的初始化列表中捕獲異常)
                  Difference between C++03 throw() specifier C++11 noexcept(C++03 throw() 說明符 C++11 noexcept 之間的區(qū)別)

                        <legend id='kmLdD'><style id='kmLdD'><dir id='kmLdD'><q id='kmLdD'></q></dir></style></legend>
                          <tbody id='kmLdD'></tbody>

                      • <small id='kmLdD'></small><noframes id='kmLdD'>

                          <bdo id='kmLdD'></bdo><ul id='kmLdD'></ul>
                          <tfoot id='kmLdD'></tfoot>
                          <i id='kmLdD'><tr id='kmLdD'><dt id='kmLdD'><q id='kmLdD'><span id='kmLdD'><b id='kmLdD'><form id='kmLdD'><ins id='kmLdD'></ins><ul id='kmLdD'></ul><sub id='kmLdD'></sub></form><legend id='kmLdD'></legend><bdo id='kmLdD'><pre id='kmLdD'><center id='kmLdD'></center></pre></bdo></b><th id='kmLdD'></th></span></q></dt></tr></i><div class="7tdbjbf" id='kmLdD'><tfoot id='kmLdD'></tfoot><dl id='kmLdD'><fieldset id='kmLdD'></fieldset></dl></div>

                            主站蜘蛛池模板: 合肥制氮机_合肥空压机厂家_安徽真空泵-凯圣精机 | 点焊机-缝焊机-闪光对焊机-电阻焊设备生产厂家-上海骏腾发智能设备有限公司 | 井式炉-台车式回火炉-丹阳市电炉厂有限公司 | 滚筒烘干机_转筒烘干机_滚筒干燥机_转筒干燥机_回转烘干机_回转干燥机-设备生产厂家 | 蔡司三坐标-影像测量机-3D扫描仪-蔡司显微镜-扫描电镜-工业CT-ZEISS授权代理商三本工业测量 | 山东太阳能路灯厂家-庭院灯生产厂家-济南晟启灯饰有限公司 | 全温度恒温培养摇床-大容量-立式-远红外二氧化碳培养箱|南荣百科 | 集装袋吨袋生产厂家-噸袋廠傢-塑料编织袋-纸塑复合袋-二手吨袋-太空袋-曹县建烨包装 | 国际船舶网 - 船厂、船舶、造船、船舶设备、航运及海洋工程等相关行业综合信息平台 | 南京和瑞包装有限公司| 食品质构分析仪-氧化诱导分析仪-瞬态法导热系数仪|热冰百科 | 贵州水玻璃_-贵阳花溪闽兴水玻璃厂 | 自动记录数据电子台秤,记忆储存重量电子桌称,设定时间记录电子秤-昆山巨天 | 拉曼光谱仪_便携式|激光|显微共焦拉曼光谱仪-北京卓立汉光仪器有限公司 | OLChemim试剂-ABsciex耗材-广州市自力色谱科仪有限公司 | BOE画框屏-触摸一体机-触控查询一体机-触摸屏一体机价格-厂家直销-触发电子 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 郑州水质检测中心_井水检测_河南废气检测_河南中环嘉创检测 | 污水提升器,污水提升泵,地下室排水,增压泵,雨水泵,智能供排水控制器-上海智流泵业有限公司 | 传递窗_超净|洁净工作台_高效过滤器-传递窗厂家广州梓净公司 | 注塑模具_塑料模具_塑胶模具_范仕达【官网】_东莞模具设计与制造加工厂家 | 滁州高低温冲击试验箱厂家_安徽高低温试验箱价格|安徽希尔伯特 | 安平县鑫川金属丝网制品有限公司,防风抑尘网,单峰防风抑尘,不锈钢防风抑尘网,铝板防风抑尘网,镀铝锌防风抑尘网 | 酶联免疫分析仪-多管旋涡混合仪|混合器-莱普特科学仪器(北京)有限公司 | 高温热泵烘干机,高温烘干热泵,热水设备机组_正旭热泵 | 陕西自考报名_陕西自学考试网 | 东莞市踏板石餐饮管理有限公司_正宗桂林米粉_正宗桂林米粉加盟_桂林米粉加盟费-东莞市棒子桂林米粉 | 冷油器-冷油器换管改造-连云港灵动列管式冷油器生产厂家 | 上海冠顶工业设备有限公司-隧道炉,烘箱,UV固化机,涂装设备,高温炉,工业机器人生产厂家 | 无锡网站建设-做网站-建网站-网页设计制作-阿凡达建站公司 | 微型驱动系统解决方案-深圳市兆威机电股份有限公司 | 卸料器-卸灰阀-卸料阀-瑞安市天蓝环保设备有限公司 | 施工围挡-施工PVC围挡-工程围挡-深圳市旭东钢构技术开发有限公司 | 考勤系统_人事考勤管理系统_本地部署BS考勤系统_考勤软件_天时考勤管理专家 | 防爆鼓风机-全风-宏丰鼓风机-上海梁瑾机电设备有限公司 | 专注提供国外机电设备及配件-工业控制领域一站式服务商-深圳市华联欧国际贸易有限公司 | 自清洗过滤器_全自动过滤器_全自动反冲洗过滤器_量子过滤器-滑漮滴 | 气动|电动调节阀|球阀|蝶阀-自力式调节阀-上海渠工阀门管道工程有限公司 | 高压分散机(高压细胞破碎仪)百科-北京天恩瀚拓 | 耐酸泵,耐酸泵厂家-淄博华舜耐腐蚀真空泵 | 活性炭-蜂窝-椰壳-柱状-粉状活性炭-河南唐达净水材料有限公司 |