【问题标题】:Malloc, free, and realloc behaviour in CC 中的 Malloc、free 和 realloc 行为
【发布时间】:2017-01-24 09:52:54
【问题描述】:

我必须在 C 中重新编码这 3 个函数,目标是重新编码的函数必须替换不同程序或系统调用中的系统函数。

我真的不明白这些函数的行为是什么,因为我已经阅读了手册,我只知道我可以使用 brk()sbrk()

【问题讨论】:

  • 只要稍微搜索一下,就有成千上万个使用这两个系统调用的内存分配器示例。
  • 很明显,您正在学习这方面的某种课程或课程。你需要检查你的教材,这应该包括在内。没有人会让学生只看手册页,并期望他们根据手册中的信息从头开始编写堆分配器。
  • 您是否也阅读过brksbrk 的手册页?有什么不清楚的地方吗?到目前为止,您尝试过什么?
  • 是的,我在学校,但没有老师的任何指示。这是一所仅基于自学的学校..
  • 我认为您应该在问题中详细说明一下。例如你到目前为止所做的。实现这些功能的任务并非易事,实现它们还有很多工作要做,并且完成所有步骤对于一个问题来说简直是太多了。也许你可以写下实际的任务(如果你有书面的)。

标签: c malloc free realloc


【解决方案1】:

malloc 基本上预先分配内存页面(参见getpagesize(2)),并在调用时返回指向这些预分配区域的可用部分的指针。 malloc 然后必须“记住”这些预分配内存段的哪一部分正在使用,哪一部分是空闲的。 阅读本文:https://www.cocoawithlove.com/2010/05/look-at-how-malloc-works-on-mac.html 可能会有所帮助! (我知道当我在 mac Os 上将 malloc 重新编码为大学作业时,这对我有很大帮助;))。

【讨论】:

    猜你喜欢
    • 2014-04-27
    • 1970-01-01
    • 2012-07-13
    • 2019-09-19
    • 2012-02-22
    • 2021-12-11
    • 1970-01-01
    • 2018-10-22
    • 2013-06-16
    相关资源
    最近更新 更多