请说明 new 和 malloc 在 C/C++ 中分配内存时的底层实现原理及其区别。
考察说明
考察对 C/C++ 内存分配机制、底层系统调用及两者差异的理解
回答思路
- 能解释 malloc 基于堆管理(如 ptmalloc2)和系统调用 brk/mmap 的底层路径
- 能说明 new 调用 operator new,最终可能调用 malloc,并区分其是否触发构造函数
- 能对比两者在初始化、异常处理、重载、内存释放方式上的差异
- 能提及内存对齐、碎片化及大块内存使用 mmap 的优化
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。