jni c向java传递数组_通过jni将jint数组从c返回到java

我在java中创建了一个整数数组,并通过jni将数组传递给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程序中,我正在反转数组并将数组返回给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]'我应该怎么做才能将数组返回给java程序?请帮忙!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值