Java JNI&;C-指针到指针

Java JNI&;C-指针到指针,java,c,java-native-interface,Java,C,Java Native Interface,我有一个关于JNI中指针到指针的问题 如果我在C中具有以下功能: void myfunction(int **pp); 如何在Java中获取int**pp的引用?如何将引用传递给JNI函数以修改它 你能给我一个解决办法吗?我可以使用简单的指针,但不能使用指向指针的指针。JNI等价物将用长基元数组替换方法的第一个参数 vs 在Java中,如果这是您所要求的,您不能将Java对象作为修改它的指针。也不能将java对象直接转换成C++结构或C++对象。但是,您可以将Java对象作为jobject,手

我有一个关于JNI中指针到指针的问题

如果我在C中具有以下功能:

void myfunction(int **pp);
如何在Java中获取
int**pp
的引用?如何将引用传递给JNI函数以修改它

你能给我一个解决办法吗?我可以使用简单的指针,但不能使用指向指针的指针。

JNI等价物将用长基元数组替换方法的第一个参数

vs


在Java中,如果这是您所要求的,您不能将Java对象作为修改它的指针。也不能将java对象直接转换成C++结构或C++对象。但是,您可以将Java对象作为
jobject
,手动获取其原语值(例如字符串中的int或char),并使用这些值在C代码中构造所需的任何内容。您可以将
jint
转换为
int
jdouble
转换为
double
,等等,但不能将
jobject
转换为
struct
或数组


如果您获得一个指针并将其传递到Java(作为
int
),那么您可以将
int
传递回C(通过JNI),并将
int
转换回指针。

谢谢,我成功地将它从JNI函数传递到Java文件,但是我无法从Java文件中现在对JNI函数的引用中得到它来修改它。@LeoUfimtsev这很不幸。我删除了链接。哦,好吧。你的回答仍然有用。谢谢你的发帖。
int alloc_opaque_type(T** pp);
public static native int alloc_opaque_type(long[] pp);