在线文档教程
C++
应用 | Utilities

std::bad_alloc

STD:不好[医]异种

Defined in header
class bad_alloc;

std::bad_alloc作为异常抛出的对象的类型。分配函数若要报告分配存储空间失败,请执行以下操作。

二次

二次

继承图

成员函数

(constructor)constructs the bad_alloc object (public member function)
operator=replaces a bad_alloc object (public member function)
whatreturns explanatory string (public member function)

STD:不好[医]阿罗克::坏[医]异种

bad_alloc(

构造新bad_alloc对象,该对象具有实现定义的以空结尾的字节字符串,该字符串可通过以下方式访问:what()...

参数

%280%29

例外

(none)(until C++11)
noexcept specification: noexcept(since C++11)

STD:不好[医]分配数::操作员=

bad_alloc& operator=( const bad_alloc& other

分配...的内容other...

参数

other-another exception object to assign

返回值

*this...

例外

(none)(until C++11)
noexcept specification: noexcept(since C++11)

STD:不好[医]阿罗克:什么?

virtual const char* what() const;

返回解释性字符串。

参数

%280%29

返回值

指向带解释性信息的以空结尾的字符串的指针。

例外

(none)(until C++11)
noexcept specification: noexcept(since C++11)

继承自STD:例外

成员函数

(destructor) virtualdestructs the exception object (virtual public member function of std::exception)
what virtualreturns an explanatory string (virtual public member function of std::exception)

二次

#include <iostream> #include <new> int main() { try { while (true) { new int[100000000ul]; } } catch (const std::bad_alloc& e) { std::cout << "Allocation failed: " << e.what() << '\n'; } }

二次

可能的产出:

二次

Allocation failed: std::bad_alloc

二次

另见

operator newoperator new[]allocation functions (function)

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cppreference.com/w/cpp/Memory/new/bad[医]异种