首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在malloc和free上的一天

最近在进行项目开发的时候犯了一个比较低级的错误。代码的大概结构如下

在使用valgrind进行内存泄漏测试的时候,测了大多数数据都没有内存泄漏,以为代码就没有问题了。然后昨天无意中测了一条数据,发现出现了内存泄漏,并且泄漏的大小等于分配的两个数组大小,即,且内存泄漏的地方定位在两个函数。当时想的是

为啥对大部分数据进行测试都没有出现问题,偏偏这一条出现的内存泄漏呢?

为啥整条数据跑下来,只泄漏了?

为啥后面跟上了对应的,还会出现内存泄漏呢?

后来审阅代码的时候,发现问题出现在了判断。因为对于大部分数据,这个条件是不成立的,因此内存就像测的时候那样没有泄漏。但是当进入语句时,此时直接就返回了,并没有释放掉内存,导致出现了泄漏。正确的代码如下:

编程之路,路漫漫其修远兮,吾将上下而求索。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210311A0F09900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券