JNI 开发:将 jshortArray 转换为 short* 的方法
在 JNI 开发中,可以使用 'GetShortArrayElements' 函数将 'jshortArray' 转换为 'short*'。
下面是一个示例代码:
JNIEXPORT void JNICALL Java_com_example_MyClass_myMethod(JNIEnv* env, jobject obj, jshortArray jarr) {
// 获取 jshortArray 的长度
jsize len = env->GetArrayLength(jarr);
// 获取 jshortArray 的元素
jshort* elements = env->GetShortArrayElements(jarr, NULL);
// 将 jshortArray 转换为 short*
short* arr = reinterpret_cast<short*>(elements);
// 使用 arr 进行操作
for (int i = 0; i < len; i++) {
// 操作 arr[i]...
}
// 释放元素
env->ReleaseShortArrayElements(jarr, elements, 0);
}
在上面的示例代码中,首先使用 'GetArrayLength' 函数获取 'jshortArray' 的长度。然后,使用 'GetShortArrayElements' 函数获取 'jshortArray' 的元素,并将其转换为 'jshort*'。最后,可以使用 'arr' 进行操作。在操作完成后,使用 'ReleaseShortArrayElements' 函数释放元素。
需要注意的是,使用 'GetShortArrayElements' 函数获取的元素在使用完后需要通过 'ReleaseShortArrayElements' 函数释放,以避免内存泄漏。
原文地址: https://www.cveoy.top/t/topic/qnMt 著作权归作者所有。请勿转载和采集!