memset 给一个对象赋值 0 会发生什么?
考察说明
考察对 memset 语义、对象内存布局和 C++ 特殊成员函数的理解
回答思路
- 说明 memset 按字节逐位清零,忽略对象的构造函数和语义
- 指出对非平凡类型(含虚函数、引用、成员对象等)会破坏对象不变量
- 分析对 POD/平凡类型一般安全,对含用户定义构造函数或标准库容器的类型存在危险
- 提到虚表指针被清零后调用虚函数会崩溃或未定义行为
- 建议使用 value-initialization 或构造函数而非 memset
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。