Cha*_*dan 1 c memory memory-management
如何通过用户库管理malloc调用.我需要解释"当调用malloc时如何在用户空间中分配内存.谁管理它.就像调用sbrk()进入内核空间".
C运行时库管理堆.堆有一些预先分配的免费商店.如果运行时无法找到连续的块,它会尝试从操作系统请求更多内存 - 调用sbrk().
如果后者失败,则报告"内存不足" - malloc()返回空指针.如果成功请求了额外的内存并且收到的块大于malloc()调用者在块中请求块的内容被划分 - 一部分被标记为已占用并返回给调用者而另一部分被添加到空闲存储中.
从sbrk()成功返回时起,内存块属于调用程序地址空间.