inet_ntoa导致内存泄露

环境:

     cpu: ARM7

     OS:vxworks

     语言:C语言

   vxworks中inet_ntoa的实现代码如下

  char *inet_ntoa ( struct in_addr inetAddress   /* inet address */  )
  {

          FAST char *buf = (char *) malloc (INET_ADDR_LEN);
          if (buf != NULL)
             inet_ntoa_b (inetAddress, buf);
          return (buf);
  }
   malloc之后的内存是没有释放的。如果频繁的调用该函数就会使系统内存耗尽。

  测试方法: 手动起一个任务,在任务主循环中调用inet_ntoa,过一段时间就memShow一下。能明显的看到剩余内存在减少。

  改动方法:使用局部变量,传参给inet_ntoa_b来实现。


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值