【发布时间】:2011-09-02 20:13:11
【问题描述】:
我找到了大量关于如何在 JNI 中生成 2D 原始数组并将其返回给 Java 的文档。但是这些信息无法描述如何在 C 中给定上下文来传递已经存在的 2D 浮点数组 (float**)。
为了明确描述我的问题,我将添加一些我想要实现的 C 伪代码:
// Returns a 2D float array from C to Java
jfloatArray ndk_test_getMy2DArray(JNIEnv* env, jobject thiz, jlong context)
{
// Cast my context reference
MyContextRef contextRef = (MyContextRef) context;
// In case we need it below
unsigned int length = MyContextGet1DLength(contextRef);
// Get the 2D Array we want to "Cast"
float** primitive2DArray = MyContextGet2DArray(contextRef);
// Hokus pokus...
// We do something to create the returnable data to Java
//
// Below is the missing piece that would convert the primitive
// 2D array into something that can be returned consumed and consumed
// by Java
jfloatArray myReturnable2DArray
return myReturnable2DArray;
}
我假设这不是直截了当的,因为我找不到任何描述这种情况的东西。
感谢您提供任何有用的信息。
【问题讨论】:
标签: java c multidimensional-array java-native-interface android-ndk