JNI如何在C ++本机函数中连接两个int数组 [英] JNI How to concatenate two int arrays in C++ native function
本文介绍了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屋!
查看全文