谁处理C++ "new"内存分配故障?

Who handles C++ "new" memory allocation failure?

本文关键字:分配 故障 内存 new 处理 C++      更新时间:2023-10-16

在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异常有何反应?

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