【发布时间】:2012-08-02 14:00:30
【问题描述】:
我正在为 C++ 中内存有限的嵌入式系统 (Tegra 2) 开发应用程序。我在整个代码中处理 new 和 new[] 的 NULL 结果,这有时会发生,但应用程序能够处理。
问题是如果内存完全耗尽,系统会通过 SIGKILL 杀死进程。我能以某种方式告诉new 应该只返回 NULL 而不是终止进程吗?
【问题讨论】:
-
我不确定,但你可以尝试使用“new (nothrow)”cplusplus.com/reference/std/new/nothrow
-
我在大多数情况下都会这样做,当然当我分配更多的内存时。在某些情况下,我懒得将 new 重写为 new(std::nothrow) 但我想该进程会以异常而不是 SIGKILL 终止。
标签: c++ memory-management sigkill