Bla*_*hex 9 c++ memory-management sigkill
我正在为C++中的内存有限的嵌入式系统(Tegra 2)开发应用程序.我处理的NULL结果new
和new[]
整个有时会发生,但应用程序能够处理这个代码.
问题是如果内存完全耗尽,系统会通过SIGKILL杀死进程.我可以告诉你new
应该只返回NULL而不是杀死进程吗?
Bla*_*ack 12
我不确定您使用的是哪种操作系统,但是您应该检查它是否支持像Linux那样的机会内存分配.
如果启用,可能会发生以下情况:
new
或malloc
从内核获取有效地址.即使没有足够的记忆,因为......解决方案:禁用内存过量使用:
echo 2 > /proc/sys/vm/overcommit_memory