JNI 修改數組
package org.professor.jni.bean;
/**
* Created by peng on 2018/10/10.
*/
public class Student {
private int[] score = {80, 95, 60, 100, 75};
public native boolean modifyStuScore(int[] stuScore);
}
JNIEXPORT jboolean JNICALL
Java_org_professor_jni_bean_Student_modifyStuScore(JNIEnv *env, jobject instance,
jintArray stuScore_) {
jsize length = (*env)->GetArrayLength(env, stuScore_);
jint *score = malloc(sizeof(jint) * length); //分配新的操作
if (NULL == score) {
return JNI_FALSE;
}
for (int i = 0; i < length; ++i) {
score[i] = 80;
}
//score 複製到 stuScore_
(*env)->SetIntArrayRegion(env, stuScore_, 0, length, score);
free(score);
return JNI_TRUE;
}
Java 調用:
Main(){
Student stuObj = new Student();
stuObj.modifyStuScore(stuObj.score);
}