当分配内存的请求没有被成功执行时,系统会抛出一个用bad_alloc类来描述出的异常。

1 定义

bad_alloc类的定义如下所示

class bad_alloc : public exception{bad_alloc();virtual ~bad_alloc();bad_alloc(const bad_alloc&);bad_alloc& operator=(const bad_alloc&);const char* what() const override;
};

其中,what()成员函数返回的是分配内存失败的原因。

2 例子

#include<iostream>
using namespace std;
int main()
{char* ptr;try {ptr = new char[(~unsigned int((int)0) / 2) - 1];delete[] ptr;}catch (bad_alloc &ba) {cout << ba.what() << endl;}return 0;
}

其中,(~unsigned int((int)0)是对unsigned int((int)0)逐位取反,得到的值是0xFFFFFFFF,之后对其进行除2操作,即左移一位,得到的值是0x7FFFFFFF,即2G。而一个应用程序一般有4G的虚拟内存,其中2G由系统使用,2G由应用程序使用。如果将这2G由应用程序使用的内存空间均用new来分配给ptr,此时肯定会报错。使用catch捕获抛出的异常,ba.what()得到失败的信息。此时的输出如图1所示。

图1 失败信息

C++中bad_alloc类相关推荐

  1. java 枚举的继承_java中枚举类可以被继承吗?

    java 枚举类 java中,使用关键字enum来定义枚举类,枚举类是一个特殊的类,大部分功能和普通类是一样的,区别为: ● 枚举类继承了java.lang.Enum类,而不是默认的Object类.而 ...

  2. c语言面向对象编程中的类_C ++中的面向对象编程

    c语言面向对象编程中的类 Object oriented programming, OOP for short, aims to implement real world entities like ...

  3. python 类中定义类_Python中的动态类定义

    python 类中定义类 Here's a neat Python trick you might just find useful one day. Let's look at how you ca ...

  4. Python中的类、模块和包究竟是什么?

    Python培训教程:Python中的类.模块和包究竟是什么?在Python和其他编程语言中,都有类似或相同的概念,如对象.类.模块.包,名称都是一样的,只不过会有细微的一些区别,正是因为有这些存在, ...

  5. java中的类修饰符、成员变量修饰符、方法修饰符。

    类修饰符: public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类. abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现. fin ...

  6. java中properties作用,java中Properties类的使用

    java中Properties类的使用 在java.util 包下面有一个类 Properties,该类主要用于读取以项目的配置文件(以.properties结尾的文件和xml文件). Propert ...

  7. Python3中的类和实例

    1.类和实例 类是抽象的模板,实例是根据类创建出来的一个个具体的"对象".例如:动物是一大类,猫.狗.鱼等都是特定的对象,即实例.python3中使用class关键字来定义类,基本 ...

  8. php5中魔术方法函数有哪几个,php中的类魔术方法有哪些

    php中的类魔术方法有:1.__sleep,返回一个包含对象中所有应被序列化的变量名称的数组:2.__tostring,返回一个类被当作字符串时要输出的内容:3.__construct,构造方法:4. ...

  9. python中类和对象的内容_python中的类和对象

    摘要:本文主要介绍了python中的类和对象的基础内容.由于在c++中对类和对象已经有了较为深刻的认识,所以此部分就是主要熟悉一下创建方法和使用方法. 1.类.对象的创建和简单使用 主要观察创建类的方 ...

  10. Javascript基础与面向对象基础~第四讲 Javascript中的类对象

    今天来说JS中如何实现类(class),事实上本应该昨天晚上写的,可我失言了,在些说一声"抱歉"!JS中的类是JS面向对象的基础,也是我最拿手的东西,你写的代码能否提高一个层次,一 ...

最新文章

  1. 实时车道检测--A Novel Vision-Based Framework for Real-Time Lane Detection and Tracking
  2. /lib64/libc.so.6 is not a symbolic link 解决方法
  3. 【Python】编程笔记10
  4. 全景图解高铁数据,谁是最有潜力的高铁城市?
  5. LINUX下FORK的运行机制详细解析
  6. VM14 启动Ubutun16.04 黑屏,实用解决办法
  7. 写给大家看的量子力学——量子通信、量子隐形传输技术简介
  8. 计算机网络奇偶校验码题目,计算机网络试题(考试必备)分解.doc
  9. vue打包报错error in ./node_modules/view-design/dist/styles/fonts/ionicons.svg?v=3.0.0
  10. CentOS7 U盘安装操作系统卡在Reached target Basic System.
  11. 软件工程-团队作业2
  12. 简明扼要聊聊 Vue3.0 的 Composition API 是啥东东!
  13. 【有利可图网】小白设计师该如何创作电商广告Banner图?内附精华教程
  14. 茅台与小米搞饥饿营销?
  15. ImageJ macro 批量vsi转tif
  16. 保姆级教程:如何搭建一个专属云平台?
  17. oracle rownum执行时机,ORACLE数据库中的ROWNUM和ORDERBY执行顺序
  18. windows桌面上删除文件夹或者文件后,显示还在,需要刷新一下才能不显示
  19. Spring 启动的监听
  20. u盘出现要求格式化怎么办

热门文章

  1. mysql 汉字笔画排序规则_SQL Server 与MySQL中排序规则与字符集相关知识的一点总结...
  2. 【PAT】1046. Shortest Distanc(循环数组)+(总结高效代码)
  3. 计算机函数left的用法,excel的left函数的用法
  4. 百度地图开发点连线形成路径
  5. 网页flash遮挡问题
  6. 沟通书籍排行榜前十名 提高沟通能力的十大书籍推荐
  7. Linus 一生只为寻找欢笑(下)-转
  8. 什么是全景(360全景、720全景、VR全景)?
  9. 印染行业APS智能排程排产的应用意义
  10. Rockchip | Rockchip固件升级工具