当前位置:  技术问答>linux和unix

如果非配完内存不进行释放会产生什么情况?

    来源: 互联网  发布时间:2017-03-13

    本文导语:    情况大体是这样:我在用libpcap进行循环抓包。整个程序是一直运行的。在抓到第一个包之后分配了内存给一个结构体,进行一些具体操作。但是分析完一个包之后并不释放内存。而是要用内存里面的数据进行跟下...

  情况大体是这样:我在用libpcap进行循环抓包。整个程序是一直运行的。在抓到第一个包之后分配了内存给一个结构体,进行一些具体操作。但是分析完一个包之后并不释放内存。而是要用内存里面的数据进行跟下一个包数据进行比较,以此类推。这样的话这块内存一直存在,并不释放。这样会产生什么问题呢?
  因为我在程序里面进行了另外的内存非配,产生了错误:malloc(): memory corruption:   。所以才注意到这个问题。  

|


没问题呀,能有什么问题?

|
那说明你的程序有内存泄漏,存在没释放的内存。

唯一的解决办法就是你先把libpcap接口搞懂,有的是需要你主动释放的,另外找你程序的bug,malloc和free是否配对。

|
严重的内存泄露。 

|
只用比较相邻的包吗?如果是那就把前面不用的释放掉。  

如果要将抓到的所有包进行相互匹配,,那就先将包抓住后放到文件中,,
抓完后在在文件中进行比较。

还有你想匹配的是什么?  ip,port,tcp,udp头?   或者是数据部分? 前者就解析出来保存,,后者就放文件里面吧。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。














站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3