**
* jni對數組運算
* 在C中沒有建立新的數組副本,直接在原來的java數組上面修改。而後返回了jintArray類型數據
*/
JNIEXPORT jintArray JNICALL Java_com_org_vincent_javacallc_JNI_increseArray
(JNIEnv * env, jobject job, jintArray jarr){java
//一、獲得java傳過來的數組長度
jsize size=(*env)->GetArrayLength(env,jarr);
//二、獲得C下的數組元素,JNI_FALSE表示不復制新的副本, jint直接獲取jintArray指針
jint *intArray=(*env)->GetIntArrayElements(env,jarr,JNI_FALSE);
//三、遍歷數組
int i=0;
for (i = 0; i < size; ++i) {
*(intArray+i)=*(intArray+i)+10;
LOGI("intArray[%d]=%d",i,*(intArray+i));
}
//這個語句必需要,否則java端不能獲取到修改後的新數據
(*env)->ReleaseIntArrayElements(env,jarr,intArray,0);
//返回結果
return jarr;數組
}指針