首页
›
编程基础与工程化
›
002-C语言
›
《指针越界排查与内存安全实战》
VIP20
本课程属于:002-C语言
编程基础与工程化 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
指针越界排查与内存安全实战
📚 共计 30 章节
01
内存布局基础
栈、堆、全局区、代码段的内存分配与生命周期。
栈
堆
全局区
02
指针的本质
指针变量、地址、解引用、指针大小与类型。
地址
解引用
sizeof
03
指针运算与数组
指针加减、数组名退化、下标访问的底层原理。
偏移
退化
下标
04
动态内存分配
malloc/calloc/realloc/free 的正确使用与配对。
malloc
free
配对
05
野指针成因
未初始化指针、释放后未置空、返回局部变量地址。
未初始化
悬空
局部变量
06
缓冲区溢出
栈溢出、堆溢出、字符串拷贝越界。
栈溢出
堆溢出
strcpy
07
数组越界访问
一维数组、二维数组、多维数组的越界场景。
一维
二维
越界
08
字符串安全
strcpy/strcat 的隐患、strncpy 的正确用法。
strcpy
strncpy
截断
09
悬空指针
指针指向已释放内存、函数返回局部指针。
dangling
释放
局部指针
10
内存泄漏
忘记 free、丢失指针、循环引用。
泄漏
free
循环引用
11
双重释放
同一块内存被 free 两次的后果与检测。
double free
崩溃
检测
12
使用未初始化内存
malloc 后未清零、栈变量未赋值。
未初始化
垃圾值
漏洞
13
指针类型转换
强制类型转换的风险、对齐问题。
cast
对齐
未定义
14
函数指针滥用
回调函数类型不匹配、调用约定错误。
回调
调用约定
类型安全
15
智能指针原理
C++ unique_ptr/shared_ptr/weak_ptr 的引入。
unique_ptr
shared_ptr
weak_ptr
16
RAII 思想
资源获取即初始化,用对象管理资源。
RAII
构造/析构
异常安全
17
静态分析工具
Cppcheck、Clang Static Analyzer 的使用。
Cppcheck
Clang
静态分析
18
动态检测工具
Valgrind、AddressSanitizer 的实战。
Valgrind
ASan
运行时
19
GDB 调试指针
查看地址、监视变量、追踪崩溃。
GDB
watch
backtrace
20
防御性编程
断言、边界检查、安全函数替换。
assert
边界
安全函数
21
编码规范
MISRA C、SEI CERT C 安全编码标准。
MISRA
CERT
规范
22
常见漏洞案例
Heartbleed、Stagefright 中的指针错误。
Heartbleed
Stagefright
案例
23
多线程内存安全
数据竞争、原子操作、内存屏障。
数据竞争
atomic
屏障
24
锁与指针
互斥锁保护指针、读写锁、死锁预防。
mutex
读写锁
死锁
25
内存池设计
减少碎片、提高分配效率、避免泄漏。
内存池
碎片
效率
26
引用计数机制
手动实现、shared_ptr 底层、循环引用破解。
引用计数
shared_ptr
weak_ptr
27
写时复制技术
COW 在字符串与容器中的应用。
COW
字符串
延迟拷贝
28
内存对齐与填充
结构体对齐、缓存行、性能影响。
对齐
padding
缓存行
29
嵌入式内存约束
栈大小限制、堆碎片、裸机环境。
嵌入式
栈大小
碎片
30
综合实战
从崩溃日志到根因定位,完整排查流程。
崩溃日志
根因
排查
所属VIP或分类
同VIP:C语言与硬件交互编程实战
同VIP:C语言内存泄漏检测方法实战
同VIP:C语言工程化代码规范实战