释放动态库中分配的内存(新)

CSDN学院讲师招募,诚邀您加入!博客Markdown编辑器上线啦PMBOK第五版精讲视频教程火星人敏捷开发1001问

JNA中内存处理-释放动态库中分配的内存(新)

分类:Java语言

前面已经介绍过一次JNA中内存释放方法,后经过实际分析,,这样写的代码不是很优雅,实际项目中代码实现方法如下:

如下是libvirt java binding实现代码存在内存泄露:

Libvirt.java

public String virConnectGetHostname(ConnectionPointer virConnectPtr);

Connect.java

public String getHostName() throws LibvirtException {String returnValue = libvirt.virConnectGetHostname(VCP);processError();return returnValue;}

如下是解决内存泄露的代码:

Libvirt.java

public Pointer virConnectGetHostname(ConnectionPointer virConnectPtr);

Connect.java

public String getHostName() throws LibvirtException {Pointer returnValue = libvirt.virConnectGetHostname(VCP);processError();if(returnValue == null) {return "";}else {String result = returnValue.getString(0);Native.free(Pointer.nativeValue(returnValue));return result;}}

上一篇pstack, coreadm and symbol tables下一篇一个可以work的Http Server示例

顶0踩0

主题推荐猜你在找

查看评论

* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

核心技术类目

原来和文字沾上边的孩子从来都是不快乐的,

释放动态库中分配的内存(新)

相关文章:

你感兴趣的文章:

标签云: