c - C 中的 Malloc、free 和 realloc 行为

标签 c malloc free realloc

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

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

最佳答案

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

关于c - C 中的 Malloc、free 和 realloc 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41825009/

相关文章:

c++ - 在这种情况下,是否有比 if-else 更快的替代方案?

c - 动态数组添加元素后打印乱码

c - [C]Malloc问题

c++ - 在函数返回后释放动态分配的结构数组。

C:尝试释放从函数返回的 malloc'd char 数组导致错误

vnode 上的转换操作(在 NetBSD 中)

C计算和类型转换混合类型

C:我应该在哪里释放我的指针?

c - free() 函数不释放堆内存

c - 在 C 中为 syslog 编写一个宏