【问题标题】:Operator new and bad_alloc on linuxLinux 上的运算符 new 和 bad_alloc
【发布时间】:2010-12-08 05:32:16
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    operator new 也是如此,唉 :^(

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 当操作系统说谎时,C++ 运行时不能做很多事情。
      猜你喜欢
      • 1970-01-01
      • 2011-05-24
      • 2013-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-04
      相关资源
      最近更新 更多