C++ 内存管理 — 专题笔记
共 21 题 | 来源:C++ 面包
自动存储持续性 →// 栈变量,作用域结束内存回收但不清空,悬空引用导致 UB
静态存储持续性 →// static 关键字, BSS 区
语言链接性 →// extern “C”
动态存储→//new/delete,定位 new (内存池常用)
名称空间 →//namespace
类和动态内存分配→//浅拷贝,运算符重载,初始化列表
题目速览
| 序号 | 题目 | 难度 | 对应公司 |
|---|---|---|---|
| 6 | C++中堆的作用域有哪些? | Easy | CVTE |
| 9 | delete[] 和 delete 的区别是什么? | Easy | 大疆 |
| 13 | malloc 的底层实现机制是什么? | Easy | CVTE |
| 14 | new 和 malloc 的区别是什么? | Easy | CVTE |
| 31 | C 语言的内存管理是如何实现的? | Easy | CVTE |
| 42 | C++ 中构造函数造成内存泄露的原因是什么? | Middle | 安左创新 |
| 56 | C++ 的垃圾回收机制是怎样的? | Middle | 蔚来 |
| 63 | int a 和 vector<int> b 作为参数时,a b 存储位置? | Middle | 智元机器人 |
| 83 | 全局变量和局部变量有什么区别? | Middle | 石头科技 / insta360 |
| 84 | 内存泄露是怎么造成的?在嵌入式中如何预防? | Middle | 中兴通讯 |
| 89 | 怎么避免野指针和悬空指针? | Middle | 石头科技 / insta360 |
| 103 | 使用指针时如何避免内存泄漏? | Middle | 零跑汽车 |
| 112 | C++ 内存分布有哪些? | Hard | 蔚来 |
| 119 | 内存分布内容及堆栈区别?malloc/free 与 new/delete 区别? | Hard | 艾派克微 |
| 122 | new/delete 和 malloc/free 的区别? | Hard | 蔚来 |
| 131 | 如何从结构体成员地址反向获取结构体首地址? | Hard | 其它 |
| 135 | 常见的内存泄漏场景有哪些?如何检测和避免? | Hard | 艾派克微 |
| 139 | 什么是内存碎片?如何解决? | Hard | 其它 |
| 140 | 什么是内存对齐?为什么要对齐? | Hard | 其它 |
| 141 | 什么是空指针和野指针?如何防范? | Hard | 其它 |
| 152 | 什么是零拷贝 (Zero-copy)? | Hard | 其它 |