gpt4 book ai didi

c - Malloc 没有失败,但系统内存不足

转载 作者:可可西里 更新时间:2023-11-01 11:49:08 24 4
gpt4 key购买 nike

<分区>

我正在 linux(C 语言)中开发一个非抢占式多线程库。要求是使用 getcontext setcontext 等来创建新线程并管理它们。磁带库在正常情况下按预期工作。

我为每个线程对象 (MyThread) 使用 malloc,如果 malloc 返回 NULL,我会通过打印消息 "malloc failed" 优雅地退出。为了测试极端条件,我运行递归斐波那契函数,该函数创建子线程来计算子计算。我以递增的数字运行 fib 并在 fib 26 处达到极限。

但是 malloc 并没有提示。是linux系统出现OOM,kill了进程。

问题:为什么当系统发现自己空间不足时,malloc 返回成功(一个新指针)?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com