java使用JNI将float*转换为jfloatArray 3 周,4 日 Questions & Answers 9212 我在C++函数中得到一个浮点*,我需要用jFrAtAtRable转换它,以返回java代码。p> 如何将float*转换为jfloatArray 谢谢
# 1 楼答案 要将float*转换为jfloatArray,可以使用NewFloatArray 您可以使用以下代码: 变量“data”只是一个简单的例子,所以你可以使用你的代码李> 另外,将com_-your_-packagename修改为真实的packagename李> 您必须将包裹名称的圆点改为underbar。(com.your.packagename>;com_your_packagename) jfloatArray Java_com_your_packagename_farrayFromJNI(JNIEnv *env, jobject thiz) { jfloatArray result; result = (*env)->NewFloatArray(env, 3); float* data; data = malloc(sizeof(float) * 3); data[0] = 123; data[1] = 456; data[2] = 789; (*env)->SetFloatArrayRegion(env, result, 0, 3, data); free(data); return result; } 或者 extern "C" { JNIEXPORT jfloatArray JNICALL Java_com_your_packagename_farrayFromJNI(JNIEnv *env, jobject thiz) { jfloatArray result; result = env->NewFloatArray(3); float* data; data = malloc(sizeof(float) * 3); data[0] = 123; data[1] = 456; data[2] = 789; env->SetFloatArrayRegion(result, 0, 3, data); free(data); return result; }; }
# 1 楼答案
要将float*转换为jfloatArray,可以使用NewFloatArray
您可以使用以下代码:
或者