博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
inet_ntoa导致内存泄露
阅读量:4111 次
发布时间:2019-05-25

本文共 417 字,大约阅读时间需要 1 分钟。

环境:

     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来实现。

转载地址:http://wuesi.baihongyu.com/

你可能感兴趣的文章
Reverse Integer--反转整数
查看>>
Container With Most Water --装最多水的容器(重)
查看>>
Longest Common Prefix -最长公共前缀
查看>>
Letter Combinations of a Phone Number
查看>>
Single Number II --出现一次的数(重)
查看>>
Valid Parentheses --括号匹配
查看>>
Remove Element--原地移除重复元素
查看>>
Remove Duplicates from Sorted Array--从有序数组中移除重复元素
查看>>
Count and Say
查看>>
Gas Station
查看>>
Palindrome Partitioning --回文切割 深搜(重重)
查看>>
Valid Palindrome 简单的回文判断
查看>>
Pascal's Triangle -- 生成杨辉三角
查看>>
Pascal's Triangle II 生成杨辉三角中的某行
查看>>
Minimum Depth of Binary Tree -- 二叉树的最小深度 DFS 加剪枝
查看>>
Climbing Stairs 爬楼梯方法 动态规划
查看>>
Merge Two Sorted Lists 合并两个有序链表
查看>>
pow(x,n) 为什么错这么多次
查看>>
Jump Game 动态规划
查看>>
Binary Tree Maximum Path Sum 自底向上求解(重重重重)
查看>>