谁处理C++ "new"内存分配故障?
Who handles C++ "new" memory allocation failure?
在C中,人们经常在使用malloc后检查空指针。然而,在C++中,我们将使用"new"。我已经做了一些搜索,malloc和new之间的区别解释如下:https://isocpp.org/wiki/faq/freestore-mgmt#new-malloc-diff
引用上面的链接:
malloc()通过返回0来报告内存耗尽。new通过抛出异常(bad_alloc)来报告分配和初始化错误。
但是操作系统(Linux或windows)对这个bad_alloc异常有何反应?
它们没有操作系统不需要对任何事情做出"反应"。您的程序可能希望对该条件作出反应,或者可能不处理异常并终止。无论哪种方式,内存都没有分配,操作系统也不再关心,如果它一开始就关心(甚至知道)的话!
相关文章:
- 分段故障(堆芯转储)矢量
- 将数组的地址分配给变量并删除
- vector.resize()中的分配错误
- C++中的动态铸造故障
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 数组的指针从不分段故障
- 试图创建动态分配的char数组时的分割故障
- 程序将拒绝进度的奇怪故障(刽子手分配)
- 将内存分配给指针数组时SEG故障
- 左col结果分配给相同的矩阵会导致分割故障
- SEG故障取决于指针分配的顺序
- 简单的字符串分配导致分割故障
- 在一个动态分配的数组的程序中分割故障
- 向量交换的向量中的分割故障,将内存分配给指针为向量的向量
- 从值捕获的变量分配到lambda参数时,GCC编译器分割故障
- 分段故障(核心倾倒)变量分配
- 谁处理C++ "new"内存分配故障?
- 模板变量分配段故障11
- 内存管理-C++数组分配分段故障11新手
- 动态分配Array时出现奇怪的分段故障