gpt4 book ai didi

java - 使用 JNI 将 float* 转换为 jfloatArray

转载 作者:行者123 更新时间:2023-11-30 01:52:11 25 4
gpt4 key购买 nike

我在我的 C++ 函数中获得了一个 float*,我需要在 jfloatArray 中转换它以返回我的 Java 代码。

如何将 float* 转换为 jfloatArray?

谢谢

最佳答案

要将 float* 转换为 jfloatArray,可以使用 NewFloatArray,

您可以使用下面的代码:

  • 变量“data”只是一个简单的例子,所以你可以使用你的代码。
  • 此外,将 com_your_packagename 修改为您的真实包名。
  • 您必须将包名称的点更改为下划线。 (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;
};
}

关于java - 使用 JNI 将 float* 转换为 jfloatArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25011597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com