您可以按照以下步骤将short** ppOut的值转换为jshort数组:

  1. 获取short**指针指向的数组大小,假设为size
  2. 创建一个新的jshort数组,长度为size,命名为jshortArray jarr
  3. 使用GetPrimitiveArrayCritical函数获取jarr数组的原始数据指针。
  4. 遍历short**数组,将每个元素转换为jshort类型,并将其存储在jarr数组中。
  5. 使用ReleasePrimitiveArrayCritical函数释放jarr数组的原始数据指针。
  6. 返回jarr数组。

以下是示例代码:

jshortArray convertToJShortArray(JNIEnv* env, short** ppOut, int size) {
    jshortArray jarr = env->NewShortArray(size);
    if (jarr == NULL) {
        // 处理内存分配失败的情况
        return NULL;
    }
    
    jshort* arr = (jshort*)env->GetPrimitiveArrayCritical(jarr, NULL);
    if (arr == NULL) {
        // 处理获取原始数据指针失败的情况
        return NULL;
    }
    
    for (int i = 0; i < size; i++) {
        arr[i] = (jshort)(*ppOut[i]); // 将short**数组的元素转换为jshort类型
    }
    
    env->ReleasePrimitiveArrayCritical(jarr, arr, 0);
    
    return jarr;
}

请注意,上述代码仅提供了一个示例实现,您可能需要根据您的实际需求进行适当的修改

我有一个short ppOut 想把它的值转成jshort数组怎么写

原文地址: https://www.cveoy.top/t/topic/iHHy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录