C++中bad_alloc类
当分配内存的请求没有被成功执行时,系统会抛出一个用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类相关推荐
- java 枚举的继承_java中枚举类可以被继承吗?
java 枚举类 java中,使用关键字enum来定义枚举类,枚举类是一个特殊的类,大部分功能和普通类是一样的,区别为: ● 枚举类继承了java.lang.Enum类,而不是默认的Object类.而 ...
- c语言面向对象编程中的类_C ++中的面向对象编程
c语言面向对象编程中的类 Object oriented programming, OOP for short, aims to implement real world entities like ...
- python 类中定义类_Python中的动态类定义
python 类中定义类 Here's a neat Python trick you might just find useful one day. Let's look at how you ca ...
- Python中的类、模块和包究竟是什么?
Python培训教程:Python中的类.模块和包究竟是什么?在Python和其他编程语言中,都有类似或相同的概念,如对象.类.模块.包,名称都是一样的,只不过会有细微的一些区别,正是因为有这些存在, ...
- java中的类修饰符、成员变量修饰符、方法修饰符。
类修饰符: public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类. abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现. fin ...
- java中properties作用,java中Properties类的使用
java中Properties类的使用 在java.util 包下面有一个类 Properties,该类主要用于读取以项目的配置文件(以.properties结尾的文件和xml文件). Propert ...
- Python3中的类和实例
1.类和实例 类是抽象的模板,实例是根据类创建出来的一个个具体的"对象".例如:动物是一大类,猫.狗.鱼等都是特定的对象,即实例.python3中使用class关键字来定义类,基本 ...
- php5中魔术方法函数有哪几个,php中的类魔术方法有哪些
php中的类魔术方法有:1.__sleep,返回一个包含对象中所有应被序列化的变量名称的数组:2.__tostring,返回一个类被当作字符串时要输出的内容:3.__construct,构造方法:4. ...
- python中类和对象的内容_python中的类和对象
摘要:本文主要介绍了python中的类和对象的基础内容.由于在c++中对类和对象已经有了较为深刻的认识,所以此部分就是主要熟悉一下创建方法和使用方法. 1.类.对象的创建和简单使用 主要观察创建类的方 ...
- Javascript基础与面向对象基础~第四讲 Javascript中的类对象
今天来说JS中如何实现类(class),事实上本应该昨天晚上写的,可我失言了,在些说一声"抱歉"!JS中的类是JS面向对象的基础,也是我最拿手的东西,你写的代码能否提高一个层次,一 ...
最新文章
- 实时车道检测--A Novel Vision-Based Framework for Real-Time Lane Detection and Tracking
- /lib64/libc.so.6 is not a symbolic link 解决方法
- 【Python】编程笔记10
- 全景图解高铁数据,谁是最有潜力的高铁城市?
- LINUX下FORK的运行机制详细解析
- VM14 启动Ubutun16.04 黑屏,实用解决办法
- 写给大家看的量子力学——量子通信、量子隐形传输技术简介
- 计算机网络奇偶校验码题目,计算机网络试题(考试必备)分解.doc
- vue打包报错error in ./node_modules/view-design/dist/styles/fonts/ionicons.svg?v=3.0.0
- CentOS7 U盘安装操作系统卡在Reached target Basic System.
- 软件工程-团队作业2
- 简明扼要聊聊 Vue3.0 的 Composition API 是啥东东!
- 【有利可图网】小白设计师该如何创作电商广告Banner图?内附精华教程
- 茅台与小米搞饥饿营销?
- ImageJ macro 批量vsi转tif
- 保姆级教程:如何搭建一个专属云平台?
- oracle rownum执行时机,ORACLE数据库中的ROWNUM和ORDERBY执行顺序
- windows桌面上删除文件夹或者文件后,显示还在,需要刷新一下才能不显示
- Spring 启动的监听
- u盘出现要求格式化怎么办
热门文章
- mysql 汉字笔画排序规则_SQL Server 与MySQL中排序规则与字符集相关知识的一点总结...
- 【PAT】1046. Shortest Distanc(循环数组)+(总结高效代码)
- 计算机函数left的用法,excel的left函数的用法
- 百度地图开发点连线形成路径
- 网页flash遮挡问题
- 沟通书籍排行榜前十名 提高沟通能力的十大书籍推荐
- Linus 一生只为寻找欢笑(下)-转
- 什么是全景(360全景、720全景、VR全景)?
- 印染行业APS智能排程排产的应用意义
- Rockchip | Rockchip固件升级工具