我正在制作一个游戏,将世界划分为描述世界的数据块.我将块保存在动态分配的数组中,因此我必须malloc()在初始化世界的数据结构时使用.
阅读malloc()手册页,有一个注释如下:
默认情况下,Linux遵循乐观的内存分配策略.这意味着当
malloc()返回非NULL时,无法保证内存确实可用.如果事实证明系统内存不足,那么一个或多个进程将被OOM杀手杀死.欲了解更多信息,请参阅的说明 的/ proc/sys目录/ VM/overcommit_memory和的/ proc/sys目录/ VM/oom_adj中proc(5),和Linux内核源文件 文档/ VM /过载会计.
如果Linux设置为使用乐观内存分配,那么这是否意味着它并不总是返回我在调用中请求的全部内存量malloc()?
我读到通过修改内核来禁用乐观内存分配,但我不想这样做.
那么有没有办法检查程序是否已分配所请求的金额?