内存泄漏
泄漏 = 失去指针却没 free。小程序可能无感,长时间运行设备会越来越差。
1. 泄漏示意
| 1 | void bad(void) { |
| 2 | int *p = malloc(1024); |
| 3 | /* 忘记 free(p); 或中途 return */ |
| 4 | } |
2. 对策
- 谁申请谁释放(或明确所有权)
- 错误分支也释放
- 能用固定缓冲就用固定缓冲
泄漏 = 失去指针却没 free。小程序可能无感,长时间运行设备会越来越差。
| 1 | void bad(void) { |
| 2 | int *p = malloc(1024); |
| 3 | /* 忘记 free(p); 或中途 return */ |
| 4 | } |