最近在进行项目开发的时候犯了一个比较低级的错误。代码的大概结构如下
在使用valgrind进行内存泄漏测试的时候,测了大多数数据都没有内存泄漏,以为代码就没有问题了。然后昨天无意中测了一条数据,发现出现了内存泄漏,并且泄漏的大小等于分配的两个数组大小,即,且内存泄漏的地方定位在两个函数。当时想的是
为啥对大部分数据进行测试都没有出现问题,偏偏这一条出现的内存泄漏呢?
为啥整条数据跑下来,只泄漏了?
为啥后面跟上了对应的,还会出现内存泄漏呢?
后来审阅代码的时候,发现问题出现在了判断。因为对于大部分数据,这个条件是不成立的,因此内存就像测的时候那样没有泄漏。但是当进入语句时,此时直接就返回了,并没有释放掉内存,导致出现了泄漏。正确的代码如下:
编程之路,路漫漫其修远兮,吾将上下而求索。
领取专属 10元无门槛券
私享最新 技术干货