C语言调用java类方法中参数传递关于数组参数的有关问题

C语言调用java类方法中参数传递关于数组参数的问题?
java代码:
public class Hello {
private native void nativeDifArgsMethod();
private void changeAryData(int[] buf, int index, int data)
{
System.out.println("In java");
System.out.println("index = " + index + " data = " + data); buf[index] = data;
System.out.println("In java end");
}

static{
System.loadLibrary("JavaTet");
}

public static void main(String[] args){
//System.out.print("succee");
Hello hl = new Hello();
hl.nativeDifArgsMethod();


}
}

c语言代码:
JNIEXPORT void JNICALL Java_test_Hello_nativeDifArgsMethod(JNIEnv *env, jobject obj)
{
        int test[] = {4, 5, 6}; 
//jintArray arg;
jclass cls = (*env)->GetObjectClass(env, obj);
jmethodID mid = (*env)->GetMethodID(env, cls, "changeAryData", "([III)V");
//arg = (*env)->NewIntArray(env, 3);
//(*env)->SetIntArrayRegion(env, arg, 0, 3, test);
printf("In C\n");
printf("a[0] = %d, a[1] = %d, a[2] = %d\n", a[0], a[1], a[2]);
(*env)->CallVoidMethod(env, obj, mid, test, 1, 100);
printf("a[0] = %d, a[1] = %d, a[2] = %d\n", ary[0], ary[1], ary[2]);
}

当(*env)->CallVoidMethod(env, obj, mid, test, 1, 100);
调用java方法时,会在buf[index] = data;这句代码上出错,错误信息Exception in thread "main" java.lang.NullPointerException。

这个函数的功能是想改变数组某个下标的值,怎样才能达到这个功能?
jni

------解决方案--------------------
不懂C,帮顶下
------解决方案--------------------
把int test[]改为jint 试试。
------解决方案--------------------
直接改变不就行了,jni函数里面有没有输出参数,也没有返回值,而且你的是C代码,直接改变不就行了,但是感觉干变了也没有,因为没返回值,或者说没返回参数。