3

在 Linux 上,如果内存不足,malloc 不一定会返回空指针。如果你真的内存不足,你可能会取回一个指针,然后让 OOM 杀手开始吃进程。c++ 的运算符 new 是否也是如此,还是会得到 bad_alloc 异常?

4

2 回答 2

7

它是一个内核函数而不是一个语言函数——你可以使用vm.overcommit_memoryvm.overcommit_ratiosysctls 来控制它。

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

于 2009-10-20T05:20:40.903 回答
4

运算符 new 也是如此,唉 :^(

于 2009-10-20T04:59:45.317 回答