面试真题

C++ · 中等 · 腾讯

malloc是如何分配内存的,free怎么知道该释放多少内存?

中等 C++ 🎤 腾讯
参考答案
结论:malloc从系统申请大块内存池(brk堆或mmap映射)后自行切割;free通过块头部元数据知大小。原理:实际分配时多划出头部(如8字节存size和标志),返回用户指针指向数据区;free将指针前移获头部读size释放整块。示例:malloc(10)因对齐和头部可能耗24字节。线程安全同ptmalloc用锁/tcache。
题目整理自公开面经,答案由校招宝自研生成,仅供参考