JNI如何在C ++本机函数中连接两个int数组 [英] JNI How to concatenate two int arrays in C++ native function

查看:130
本文介绍了JNI如何在C ++本机函数中连接两个int数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Android Studio中,我使用NDK在C ++本机函数中连接两个int数组.如何在以下代码中做到这一点?我需要填写以下代码.预先感谢.

In Android Studio, I'm using NDK for concatenating two int arrays in C++ native function. How can I do that in the following code? I need to fill the following code. Thanks in advance.

jintArray
Java_com_android_example_MainActivity_helloFromJNI(
    JNIEnv *env,
    jobject /* this */,
    jintArray a, jintArray b){

    jintArray c;

    // How to concatenate a and b to get c, c <-  a, b?
    ....

    return c;
}

推荐答案

jsize alen = env->GetArrayLength(a);
jsize blen = env->GetArrayLength(b);
jintArray c = env->NewIntArray(alen + blen);
jint *avalues = env->GetIntArrayElements(a, NULL);
env->SetIntArrayRegion(c, 0, alen, avalues);
env->ReleaseIntArrayElements(a, avalues, JNI_ABORT);
jint *bvalues = env->GetIntArrayElements(b, NULL);
env->SetIntArrayRegion(c, alen, blen, bvalues);
env->ReleaseIntArrayElements(b, bvalues, JNI_ABORT);
return c;

这篇关于JNI如何在C ++本机函数中连接两个int数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆