在Linux上,如果内存不足,malloc不一定会返回空指针。你可能会找回一个指针然后让OOM杀手开始吃进程,如果你真的没有记忆。对于c ++的operator new也是如此,或者你会得到bad_alloc异常吗?
答案 0 :(得分:7)
这是一个内核函数而不是语言函数 - 您可以使用vm.overcommit_memory
和vm.overcommit_ratio
sysctl来控制它。
它们在/proc/sys/vm/overcommit_memory
和/proc/sys/vm/overcommit_ratio
的proc文件系统中可见。
答案 1 :(得分:4)
对于operator new来说也是如此,唉:^(