前端/移动开发面试题更新 2026-08-05

请解释为什么包含 std::vector 的结构体在动态分配时应该使用 new 而不是 malloc,并说明这样做的原因。

腾讯前端/移动开发互联网/IT风险判断技术原理C++

考察说明

考察对 C++ 构造与析构语义、内存管理机制的理解

回答思路

  1. 能明确说明 malloc 仅分配内存而不调用构造函数
  2. 能解释 vector 在构造时会分配堆内存并建立内部状态
  3. 能指出使用 new 会触发构造函数,而 malloc 不会导致对象未初始化
  4. 能说明正确释放应使用 delete 而非 free,以避免析构未调用
本题已收录答题指导

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

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