在Android Studio中,我使用NDK在C ++本机函数中连接两个int数组。我如何在以下代码中执行此操作?我需要填写以下代码。提前谢谢。
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;
}
答案 0 :(得分:1)
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;