相关疑难解决方法(0)

Linux中的malloc() - "无法保证内存确实可用"?

我正在制作一个游戏,将世界划分为描述世界的数据块.我将块保存在动态分配的数组中,因此我必须malloc()在初始化世界的数据结构时使用.

阅读malloc()手册页,有一个注释如下:

默认情况下,Linux遵循乐观的内存分配策略.这意味着当malloc()返回非NULL时,无法保证内存确实可用.如果事实证明系统内存不足,那么一个或多个进程将被OOM杀手杀死.欲了解更多信息,请参阅的说明 的/ proc/sys目录/ VM/overcommit_memory的/ proc/sys目录/ VM/oom_adjproc(5),和Linux内核源文件 文档/ VM /过载会计.

如果Linux设置为使用乐观内存分配,那么这是否意味着它并不总是返回我在调用中请求的全部内存量malloc()

我读到通过修改内核来禁用乐观内存分配,但我不想这样做.

那么有没有办法检查程序是否已分配所请求的金额?

c linux memory-management

5
推荐指数
2
解决办法
586
查看次数

标签 统计

c ×1

linux ×1

memory-management ×1