JNI 开发:将 C++ signed short** 写入 Java jshortArray
在 JNI 开发中,您可以使用 'GetShortArrayElements' 和 'ReleaseShortArrayElements' 函数来获取和释放 'jshortArray' 的元素。然后,您可以使用 'SetShortArrayRegion' 函数将底层的 'signed short** ppOut' 的内容写入到 'jshortArray' 里。
下面是一个示例代码:
JNIEXPORT void JNICALL Java_com_example_MyClass_myMethod(JNIEnv *env, jobject obj, jshortArray jArray) {
// 获取jshortArray的元素
jshort* elements = env->GetShortArrayElements(jArray, NULL);
// 获取jshortArray的长度
jsize length = env->GetArrayLength(jArray);
// 假设你的底层数据为signed short** ppOut,这里假设为ppOut
signed short** ppOut = ...;
// 将ppOut的内容写入到jshortArray里
for (int i = 0; i < length; i++) {
elements[i] = (*ppOut)[i];
}
// 释放jshortArray的元素
env->ReleaseShortArrayElements(jArray, elements, 0);
}
需要注意的是,在使用 'GetShortArrayElements' 获取 'jshortArray' 的元素后,需要在释放之前避免对 'jshortArray' 进行修改,否则可能会导致未定义的行为。
原文地址: https://www.cveoy.top/t/topic/qnMX 著作权归作者所有。请勿转载和采集!