VIP20
本课程属于:003-C语言系统编程 编程基础与工程化 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录 咨询 / 购买

指针越界排查与修复实战

📚 共计 30 章节
01
指针的本质
内存地址与变量的关系,指针的声明与初始化,取地址符&与解引用符*
基础核心
02
指针的算术运算
指针加减整数,指针与数组的关系,指针比较运算
运算数组
03
数组越界
数组下标越界的原理,栈上/堆上数组越界的典型场景
越界栈堆
04
字符串越界
字符串字面量与字符数组,strcpy/strcat等函数导致的越界,C++ std::string风险
字符串C++
05
野指针与悬空指针
未初始化指针,free/delete后的悬空指针,函数返回局部变量地址
野指针悬空
06
动态内存越界
malloc/calloc/realloc使用不当,new/delete配对问题,内存池越界
动态内存堆
07
缓冲区溢出
栈/堆缓冲区溢出原理,经典案例:gets函数
溢出安全
08
指针与函数
函数指针的越界,回调函数中的指针安全,虚函数表指针越界
函数指针虚表
09
多级指针越界
二级指针的常见错误,指针数组与数组指针混淆,多级指针内存布局
多级指针混淆
10
结构体与指针
结构体指针越界,柔性数组的使用与风险,结构体对齐导致的越界
结构体对齐
11
C++引用与指针
引用与指针的区别,引用类型的越界风险,右值引用与移动语义中的指针问题
引用移动语义
12
智能指针越界
std::unique_ptr使用误区,shared_ptr循环引用与越界,weak_ptr的lock机制
智能指针RAII
13
STL容器与迭代器
vector迭代器失效,list迭代器越界,map/set的迭代器陷阱
STL迭代器
14
多线程指针越界
数据竞争与指针,线程间共享指针的风险,原子操作与内存序
多线程并发
15
内存对齐与越界
对齐要求与越界访问,unaligned访问的后果,alignas与alignof
对齐硬件
16
调试工具
GDB调试指针越界,Valgrind检测内存错误,AddressSanitizer使用
调试工具
17
静态分析
Clang Static Analyzer,Coverity,Cppcheck检测指针问题
静态分析CI
18
防御性编程
断言assert的使用,边界检查惯用法,安全函数替代方案
防御安全
19
代码审查
指针越界的常见模式,审查清单,自动化检查工具集成
审查规范
20
实战案例1:字符串处理
字符串处理函数导致的越界,修复方案与测试
实战字符串
21
实战案例2:动态数组扩容
动态数组扩容时的越界,修复方案与测试
实战扩容
22
实战案例3:回调函数
回调函数中的指针越界,修复方案与测试
实战回调
23
实战案例4:多线程队列
多线程共享队列的指针越界,修复方案与测试
实战多线程
24
实战案例5:序列化
序列化与反序列化中的指针越界,修复方案与测试
实战序列化
25
实战案例6:嵌入式系统
嵌入式系统中的指针越界,修复方案与测试
实战嵌入式
26
实战案例7:网络协议解析
网络协议解析中的指针越界,修复方案与测试
实战网络
27
实战案例8:图形渲染引擎
图形渲染引擎中的指针越界,修复方案与测试
实战渲染
28
实战案例9:数据库引擎
数据库引擎中的指针越界,修复方案与测试
实战数据库
29
实战案例10:内核模块
操作系统内核模块中的指针越界,修复方案与测试
实战内核
30
总结与最佳实践
指针越界预防体系,编码规范,持续集成中的内存安全
总结规范