谁处理C ++" new"内存分配失败?

时间:2015-03-25 17:09:01

标签: c++ c memory-management

在C中,人们经常在使用malloc后检查空指针。但是,在C ++中,我们将使用" new"。我做了一些搜索,一个解释malloc和new之间的区别如下: https://isocpp.org/wiki/faq/freestore-mgmt#new-malloc-diff

从上面的链接引用:

  

malloc()通过抛出异常(bad_alloc)返回0.报告分配和初始化错误来报告内存耗尽。

但是OS(Linux或Windows)如何对这个bad_alloc异常做出反应?

1 个答案:

答案 0 :(得分:6)

他们没有。操作系统并不需要做出反应"任何事情。您的程序可能希望对条件做出反应,或者可能使异常未处理并终止。无论哪种方式,内存都没有被分配,操作系统不再关心,如果它首先关心(甚至知道它)!