new操作符动态分配内存时,首先它会调用对象的operator new()函数分配相应大的内存(如果对象类没有重载operator new()函数,则默认调用<new>头文件里的operator new()函数分配内存);接着调用对象的构造函数,初始化这块内存;最后返回指向该内存块的指针。

当分配内存时,如果内存空间不够用,则分配函数会默认抛出bad_allco类型异常,供用户接收并处理。另外,我们还能自己定义如何处理空间不足,用一个函数指明该如何处理内存不足。下面这个例子中,必然会导致内存不足,我用set_new_handler()指定一个自定义函数去处理内存不足问题,之后,分配内存不足时,不会默认抛出bad_allco()异常,而是去执行我定义的函数,我定义的函数在输出信息后又抛出了异常(当然这个函数你可以随便写)。

#include <iostream>
//#include <new>
using namespace std;

void out_of_store()
{
    cerr << "my bad_alloc\n";
    throw bad_alloc();
}

int main()
{
    set_new_handler(out_of_store);
    try {
        for (;;)
            new char[10000];
    }
    catch (bad_alloc) {
        cerr << "Memory exhausted! \n";
    }
    system("PAUSE");
    return 0;
}

最新文章

  1. 【干货分享】前端面试知识点锦集03(JavaScript篇)——附答案
  2. OpenCv ROI操作
  3. The specified framework &#39;Microsoft.NETCore.App&#39;, version &#39;1.0.1&#39; was not found 解决办法
  4. Elmah 日志记录组件
  5. [Xamarin.Android] ActionBar Tips
  6. LINUX信息安全系统设计基础第二周学习总结
  7. Change ICON of MFC Application and Dialog
  8. Selenium2Library系列 keywords 之 _SelectElementKeywords 之 select_all_from_list(self, locator)
  9. unity3d脚本编程
  10. 重写DataGridViewColumn
  11. 自己寫的 Loading JS插件
  12. Linux修改时间时区并在Tomcat中生效
  13. javascript权威指南pdf
  14. FTP出现PORT模式成功, 请更新你的站点配置文件
  15. PHP 中的Trait
  16. java下载Excel模板(工具类)
  17. A1123. Is It a Complete AVL Tree
  18. JS控制只能输入数字并且最多允许小数点两位
  19. async函数对比Generator函数
  20. vue 引用公共方法(例子:截取字符串固定字数,其余显示...)

热门文章

  1. as follows ,as follow &amp;&amp; following
  2. Pressure-sensitive pores scattered
  3. 总结-css编码规范
  4. Allegro padstack
  5. Spring中Bean的生命周期方法
  6. 用DropBox分享Unity3D的Web应用
  7. DOS命令大全!
  8. 佛祖保佑,永无bug
  9. PHP乱码完美解决
  10. Source Insight 常用设置和快捷键大全