1、java中定义
public native void giveArray(int[] array);
public native int[] getArray(int len);
2、定义头文件
JNIEXPORT void JNICALL Java_com_dongnaoedu_jni_JniTest_giveArray
(JNIEnv *, jobject, jintArray);
JNIEXPORT void JNICALL Java_com_dongnaoedu_jni_JniTest_getArray
(JNIEnv *, jobject, jint);
3、定义c文件
//操作java中的数组
JNIEXPORT void JNICALL Java_com_dongnaoedu_jni_JniTest_giveArray
(JNIEnv *env, jobject jobj, jintArray arry){
jint *elems = (*env)->GetIntArrayElements(env, arry, NULL); //jintArray -> jint指针->c int 数组
int len = (*env)->GetArrayLength(env, arry); //数组的长度
qsort(elems,len,sizeof(jint),compare); //排序
(*env)->ReleaseIntArrayElements(env, arry, elems, 0); //同步
}
//返回c的数组给java
JNIEXPORT void JNICALL Java_com_dongnaoedu_jni_JniTest_getArray
(JNIEnv *env, jobject jobj, jint len){
jintArray jint_arr = (*env)->NewIntArray(env, len); //创建一个指定大小的数组
jint *elems = (*env)->GetIntArrayElements(env, jint_arr, NULL);
int i = 0;
for (;i< len; i++)
{
elems[i] = i;
}
(*env)->ReleaseIntArrayElements(env, jint_arr, elems, 0); //同步
return jint_arr;
}