jni c向java传递数组_通过jni将jint数组从c返回到java
我在java中創(chuàng)建了一個整數(shù)數(shù)組,并通過jni將數(shù)組傳遞給cpp程序
我的代碼是:
import java.util.*;
class SendArray {
//Native method declaration
native int[] loadFile(int[] name);
//Load the library
static {
System.loadLibrary("nativelib");
}
public static void main(String args[]) {
int arr[] = {1,2,3,4,5,6,7,8,9,10};
//Create class instance
SendArray mappedFile=new SendArray();
//Call native method to load SendArray.java
int[] buf = mappedFile.loadFile(arr);
//Print contents of SendArray.java
for(int i=0;i
System.out.print(buf[i]);
}
}
}在cpp程序中,我正在反轉(zhuǎn)數(shù)組并將數(shù)組返回給java程序
我的代碼是::
#include
using namespace std;
JNIEXPORT jintArray JNICALL Java_SendArray_loadFile
(JNIEnv * env, jobject jobj, jintArray array) {
cout<
int i;
jboolean j;
int ar[100];
// for(i = 0; i < 10; i++){
int * p= env->GetIntArrayElements(array, &j);
//jint *array=env->GetIntArrayElements(one, 0);
//ar[i] = array[i];
//}
for(i = 0 ; i < 10 ; i++){
cout << p[i];
}
for(i = 10 ; i > 0 ; i--){
ar[10-i] = p[i];
}
jintArray ret = env->NewIntArray(10);
for(i = 0; i >10 ; i++){
ret[i]=ar[i];
}
return ret;
}錯誤我剛開始是:
error: no match for 'operator=' in '*(ret +((long unsigned int)((long unsigned int)i))) = ar[i]'我應(yīng)該怎么做才能將數(shù)組返回給java程序?請幫忙!!!!!
總結(jié)
以上是生活随笔為你收集整理的jni c向java传递数组_通过jni将jint数组从c返回到java的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java disjoint_java –
- 下一篇: mysql accountlevel1_