首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过JNI在C和Java之间传递指针

通过JNI在C和Java之间传递指针
EN

Stack Overflow用户
提问于 2009-10-28 01:22:53
回答 5查看 58.2K关注 0票数 76

目前,我正在尝试创建一个使用CUDA功能的Java应用程序。CUDA和Java之间的连接工作得很好,但我有另一个问题,我想问一下,我的想法是否正确。

当我从Java调用一个本机函数时,我将一些数据传递给它,这些函数计算一些东西并返回一个结果。有没有可能让第一个函数返回一个指向这个结果的引用(指针),我可以将它传递给JNI,然后调用另一个函数对结果进行进一步的计算?

我的想法是通过将数据留在GPU内存中,并只传递对它的引用,以便其他函数可以使用它,从而减少从GPU复制数据所产生的开销。

在尝试了一段时间后,我自己认为这是不可能的,因为指针在应用程序结束后被删除(在本例中,当C函数终止时)。这是正确的吗?或者我只是在C中做得太差了,看不到解决方案?

Edit:好吧,稍微扩展一下这个问题(或者说得更清楚一些):JNI本机函数分配的内存是否在函数结束时释放?或者,我是否仍然可以访问它,直到JNI应用程序结束或手动释放它?

感谢您的意见:)

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1632367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档