在我的Java代码中,我有一个2D浮点数组float[x][4] floatArray
。这里x
可以在1到25之间。我必须通过JNI
将这个2D浮点阵列传递给C++
方法。我JNI
方法是通过JNI将float [] []传递给C++的最简单方法
jboolean MyJNIMethod(JNIEnv * env, jobject obj, jobjectArray myArray)
{
//how to convert this myArray to something that can be safely passed to C++ method below
}
里面MyJNIMethod
我得叫C++
方法,并传递从Java采取2D float数组这种方法
bool MyCplusPlusMethod(float coordinates[][4])
{
}
我有在适当的转换jobject飘起了困难时期[] []由于缺乏本土开发知识。任何人都可以告诉我最简单和最安全的方法吗?由于
你可以简化这个:
发布本地阵列参考Java行主要1D数组,并将其传递给float [] [4]。在C++中,1D和2D数组在内存中看起来相同。 –
第二个建议将一维数组传递给JNI。请记住,您还需要通过尺寸。 – jackrabbit
我决定在JNI和C++中使用vector>。现在我正在读JNI中的float [] []。填充矢量>并将其传递给C++ –