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

第三方库内存泄露,怎么处理?

    来源: 互联网  发布时间:2015-12-17

    本文导语:  现在我要使用一个动态库,程序运行后动态加载该库,然后发现他泄露了内存?有什么好的解决办法么?谢谢! | 在另外一个进程调用第三方库,需要的话将对它的调用包装成无状态的。 ...

现在我要使用一个动态库,程序运行后动态加载该库,然后发现他泄露了内存?有什么好的解决办法么?谢谢!

|
在另外一个进程调用第三方库,需要的话将对它的调用包装成无状态的。

|
以上的一些解决办法有问题,如果第三方的库是静态库(.o、.lib、.obj之类),而且它把申请的指针返回了出来,那么你可以主动去释放,否则死路一条。
如果第三方的库是动态链接库(DLL),那么在任何情况下,即使你能得到这个指针也是没有办法了,因为new/delete或其它的内库管理函数都是基于内存管理库的,也就是当前进程,你是无法调用它的内存管理库函数的,你的程序delete它的指针,实质上只是把这个指针值调用你的内存管理库,由于你的内存分配表项中没有这个指针,好的情况是什么都没有发生,坏是情况是你的内存链表被破坏,程序崩掉或出现莫名其妙的后果。所以说,你还是去找开发商,这是唯一正解。

|
首先你怎么获得这个指针呢?
然后,你怎么确定这个指针所指的内存以后不用了呢?

使用第三方库,接口的内存指针传递不过几种形式,char * , void * ...
在自己的代码中确定结束程序,或者释放第三方DLL时候
就可以执行这个动作了

当然,如果对方导致泄漏的内存指针不传递出来
那就没办法了,不过一般情况下,这类指针都是会传递出来的
一定要钻牛角那就没办法

|
什么库?

先弄清楚是使用不当造成的,还是的确是第三方库的问题.

    
 
 

您可能感兴趣的文章:

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












  • 相关文章推荐
  • 如何将第三方包加入 谢谢,急
  • MySQL第三方发行版 OurDelta
  • linux 下如何编译带第三方库函数的程序
  • 请问如何在jbuiler5中加载第三方的bean?
  • java 的第三方包值不值得学呢?
  • mysql iis7站长之家
  • Android第三方ROM MoKee OpenSource
  • 谁有JBuilder的补丁,或是第三方控件,能完善一下JBuilder的功能的???
  • android导入第三方jar包报错 如何正确导入jar包
  • 请问linux下如何添加第三方库文件
  • 求助:如何添加第三方的库文件
  • Android应用内调用第三方应用的方法
  • 如何将第三方程序(命令)输出控制台的结果写到文件里
  • 使用jbuilder的问题,如何用第三方的类,或者怎么用自己写过的类
  • 请问谁做过在linux下用java开发串口通信程序,所用第三方jar包是rxtx
  • 第三方飞信应用程序 LibFetion
  • 要做一个在applet,实现可以托拽的图形(比如长方形和线段等)?那位高手有资料?或者有没有java的第三方类库实现此功能?
  • nginx安装第三方模块的方法
  • 谁知道用JAVA做报表的第三方工具有哪些?最好有中文资料!
  • 新手:Linux下使用第三方C库(openssl),是调用.so文件还是直接调用.h文件?


  • 站内导航:


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

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

    浙ICP备11055608号-3