# 指针、内存与资源生命周期检查清单

## 所有权与释放

- `malloc`/`calloc`/`realloc` 的返回值是否在可见路径上检查失败分支。
- 新增分配后是否在所有早返回、错误路径和成功路径上保持成对释放，避免泄漏或双重释放。
- `realloc` 是否直接覆盖原指针，导致失败时丢失原地址。

## 指针与边界

- 指针算术、数组下标和长度参数是否在 diff 中显示可能越界或差一错误。
- `memcpy`/`memmove`/`strncpy`/`snprintf` 的目标长度是否与实际缓冲区大小一致。
- 返回局部变量地址、悬空指针、释放后继续使用是否在 diff 中可证。

## 资源清理

- 文件描述符、`FILE *`、锁、映射区或库句柄是否在失败路径上遗漏释放。
- 初始化一半失败时，是否按已完成的步骤逆序清理。
