如果非配完内存不进行释放会产生什么情况?
情况大体是这样:我在用libpcap进行循环抓包。整个程序是一直运行的。在抓到第一个包之后分配了内存给一个结构体,进行一些具体操作。但是分析完一个包之后并不释放内存。而是要用内存里面的数据进行跟下一个包数据进行比较,以此类推。这样的话这块内存一直存在,并不释放。这样会产生什么问题呢?
因为我在程序里面进行了另外的内存非配,产生了错误:malloc(): memory corruption: 。所以才注意到这个问题。
------解决方案--------------------严重的内存泄露。
------解决方案--------------------只用比较相邻的包吗?如果是那就把前面不用的释放掉。
如果要将抓到的所有包进行相互匹配,,那就先将包抓住后放到文件中,,
抓完后在在文件中进行比较。
还有你想匹配的是什么? ip,port,tcp,udp头? 或者是数据部分? 前者就解析出来保存,,后者就放文件里面吧。
------解决方案--------------------
------解决方案--------------------那说明你的程序有内存泄漏,存在没释放的内存。
唯一的解决办法就是你先把libpcap接口搞懂,有的是需要你主动释放的,另外找你程序的bug,malloc和free是否配对。