c - Malloc 调用系统调用
问题描述
我在测验中被问到 malloc() 库调用将始终调用 mmap() 或 brk()。答案是假的。我无法理解这怎么可能?
解决方案
第一次调用malloc(1)
它会向内核请求一大堆内存,因为内核有它可以给你的最小内存量。然后它会给你一个字节的内存。下次你调用malloc(1)
它时,它会从它分配的那个大块中给你另一个字节。以此类推,直到该块用完为止。然后它将从内核分配更多内存。
推荐阅读
- reactjs - 未捕获的错误:模块构建失败(来自 ./node_modules/babel-loader/lib/index.js):SyntaxError。react 和 babel 出了点问题
- python - 回复一条消息 discord.py
- java - Spring Rest - 将嵌套的 DTO 对象绑定到 @RequestParams
- discord.js - Discord.js 嵌入看起来很奇怪
- python - 如果我们也单击按钮,flask-slack-app-slash-command-Function 也会执行
- json - 如何将 asn1 转换为 JSON
- c++ - 我在使用 Qt Creator 链接 Pistache 时遇到问题:未定义的对 `vtable for Pistache::Http::Handler' 的引用
- ros - rviz启动时黑屏是什么原因?
- python - 我的 Discord 机器人如何处理多个输入?
- sql-server - 在同一台机器上的 SQL Server 中,仅将数据从一个数据库复制到另一个数据库