栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Linux堆结构以及malloc()和free()的行为

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux堆结构以及malloc()和free()的行为

大多数

malloc()
实现都是通过在分配的内存块之前和/或之后跟踪堆自身内部的堆状态来工作的。超出分配的块会导致此数据被破坏-
其中一些数据可能包含指针或长度,而破坏这些数据会导致实现尝试访问无效的内存位置。

实现方式的详细信息

malloc()
取决于您所使用的系统和libc。如果您使用的是glibc(如果您使用的是Linux,则可能会出现这种情况),此处对此有一个很好的解释:

http://gee.cs.oswego.edu/dl/html/malloc.html

假设情况如此,

0x29
您看到的可能是块大小(32 =
0x20
)和一些标志的按位或。这是可能的,因为所有堆分配都舍入到最接近的16个字节(或更多!),因此可以始终假定大小的低八位为零。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/391807.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号