c++ - linux 上的运算符 new 和 bad_alloc

标签 c++ linux new-operator bad-alloc

在 Linux 上,如果内存不足,malloc 不一定返回空指针。如果您真的内存不足,您可能会取回一个指针,然后让 OOM killer 开始吞噬进程。 c++ 的 operator new 也是如此还是会得到 bad_alloc 异常?

最佳答案

它是一个内核函数而不是语言函数 - 您可以使用 vm.overcommit_memoryvm.overcommit_ratio sysctl 来控制它。

它们在 /proc/sys/vm/overcommit_memory/proc/sys/vm/overcommit_ratio 的 proc 文件系统中可见。

关于c++ - linux 上的运算符 new 和 bad_alloc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1592535/

相关文章:

C++程序在随机位置无故停止

c++ - cpp/opengl 中的事件

linux - 如何在inittab中定义按下滚动锁的 Action ?

Javascript - 具有多个偏移量比较的相同日期

c++ - 手动抛出 std::bad_alloc 可以吗?

c++ - 在 C++17 中调用对象生命周期之外的非静态成员函数

c++ - 值(value)转换与引用转换

linux - grep 变量和空格的问题

linux - 为什么我无法禁用多播请求

c++ - 避免手动创建 lambda 来包装对 new[]: 的调用,以用作 std::generate 中的生成器函数