C语言中经常出现的一种缺陷就是内存泄露。如何避免内存泄露呢?
1、malloc()/calloc()和free()要成对出现。但是复杂的代码中,这一点并不容易执行得很好,所以导致内存泄露。
2、不再使用的内存尽快释放。避免遗忘。
3、一定要在引用者作用域结束前,释放内存。否则这块内存就访问不到了,也就无法释放了。
4、被多处引用的内存,使用引用计数来管理,不再引用时,则引用计数减1,如果引用计数为0,则释放内存。
5、先释放结构体成员使用的内存,再释放结构体变量使用的内存。反过来,会导致结构体成员使用的内存无法释放。