Я сделал простую функцию для преобразования:

ел большое количество документации о том, как генерировать двумерный примитивный массив в JNI и возвращать его в Java. Но эти фрагменты информации не описывают, как передатьуже существует 2D массив с плавающей точкой (float **) с учетом контекста вC.

Чтобы описать мою проблему явно, я добавлю некоторые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;
}

Я предполагаю, что это не так просто, учитывая, что я не смог найти ничего, описывающего этот сценарий.

Спасибо за любую полезную информацию.

Ответы на вопрос(3)

Ваш ответ на вопрос