C语言内存泄漏问题检视方法

开课吧小一2021-04-06 16:03

点赞
有用
分享分享

一般来说C语言中内存泄漏的要素包括:函数内有局部指针变量定义;对该局部指针有通过上一小节中“两种堆内存获取方法”之一获取内存;在函数返回前(含正常分支和异常分支)未释放该内存,也未保存到其它全局变量或返回给上一级函数。

C语言内存泄漏问题检视方法

检视内存泄漏问题,关键还是要养成良好的编码检视习惯。与内存泄漏三要素对应,需要做到如下三点:

1、在函数中看到有局部指针,就要警惕内存泄漏问题,养成进一步排查的习惯;

C语言内存泄漏问题检视方法

2、分析对局部指针的赋值操作,是否属于前面所说的“两种堆内存获取方法”之一,如果是,就要分析函数返回的指针到底指向啥?是全局数据、静态数据还是堆内存?对于不熟悉的接口,要找到对应的接口文档或源代码分析;又或者看看代码中其它地方对该接口的引用,是否进行了内存释放;

3、如果确认对局部指针存在内存申请操作,就需要分析该内存的去向,是会被保存在全局变量吗?又或者会被作为函数返回值吗?如果都不是,就需要排查函数所有有”return“的地方,保证内存被正确释放。

以上就是小编整理的“C语言内存泄漏问题检视方法”一文,如果对于C/C++语言有兴趣的同学,可以去开课吧C/C++教程频道了解更多C/C++相关信息。

有用
分享