后端岗位面试题更新 2026-08-05

请说明 C++ 中 new/delete 的实现原理,申请失败时的场景及结果,以及它们与 malloc/free 的区别。

招商银行·招银网络科技后端开发金融风险判断技术原理C++

考察说明

考察对 C++ 内存管理底层机制、异常安全与 C 语言内存分配差异的理解

回答思路

  1. 准确描述 new 包含 operator new 分配与构造函数调用两个阶段
  2. 说明 delete 先析构再调用 operator delete 释放的流程
  3. 区分 new/delete 失败抛异常与 malloc/free 返回 NULL 的行为
  4. 指出 new[]/delete[] 与单一对象分配的区别及数组计数开销
  5. 解释两者在类型安全、重载和内存对齐方面的差异
本题已收录答题指导

本题附完整参考答案与评分标准

登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。