gpt4 book ai didi

c++ - 在 C++ 中预见 std::bad_alloc

转载 作者:太空狗 更新时间:2023-10-29 20:44:26 24 4
gpt4 key购买 nike

据我了解,C++ 中的 std::bad_alloc 异常是在程序内存不足时触发的。有没有一种方法可以监控剩余的内存量并在我们到达不归路之前触发一个特殊的例程?

最佳答案

不,但是你可以用 std::set_new_handler 注册一个处理程序,全局 operator new() 的默认实现在一个循环中执行,直到处理程序不返回或没有其他处理程序注册。处理程序本身可能会尝试释放更多内存、发布日志消息或类似内容。

不过,具体有多少内存可用于您的分配函数在很大程度上取决于您的平台和操作系统,所以不要期望太多。

例如,在超额订阅内存的系统上,您的分配可能会成功,但您的程序仍可能因为系统内存不足而终止。

关于c++ - 在 C++ 中预见 std::bad_alloc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13235782/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com