我需要通过JNI获取包含Java数组直接内存地址的指针,而不需要进行某种形式的复制(即直接访问)。
GetArrayElements返回指向已复制数组的指针-我需要能够直接从本地层修改Java层上的int[]。
从jintArray转换为int*可以成功返回内存地址,但我不确定这是否特别稳定...?
在这里我能做些什么吗...?
GetArrayElements返回指向已复制数组的指针-我需要能够直接从本地层修改Java层上的int[]。
从jintArray转换为int*可以成功返回内存地址,但我不确定这是否特别稳定...?
在这里我能做些什么吗...?
GetPrimitiveArrayCritical
- 这意味着没有GC可能运行,你必须遵守几个限制(在执行此操作之前,请阅读并理解这些限制),但只要Java中的原始表示等同于C++中的原始表示,它就会起作用。如果不是,那么你无法避免复制。 - Voo