您的位置:首页 > 其它

JNI开发之创建int数组返回

2017-07-05 11:53 337 查看
前言:如何使用JNI创建int数组并且返回给java。

----------分割线---------

JNI创建int数组返回java。

java代码:

public static void main(String[] args) {

TestJni tj = new TestJni();

int[] javaLongArray = tj.javaIntArray(12);

for (int i : javaLongArray) {

System.out.print(i + " ");
}

}

// 利用c创建一个len长度的int数组
public native int[] javaIntArray(int len);

// 加载动态库
static {
System.loadLibrary("JNI");
}
C代码:
#include"com_fly_TestJni.h"

JNIEXPORT jintArray  JNICALL Java_com_fly_TestJni_javaIntArray
(JNIEnv *env, jobject job, jint len){
//jintArray(JNICALL *NewIntArray)(JNIEnv *env, jsize len);
//第一个参数
//第二个参数 创建数组的长度
jintArray jntarray = (*env)->NewIntArray(env, len);

//数组转化为 jint* 类型
jint * jintp = (*env)->GetIntArrayElements(env, jntarray, NULL);

for (int i = 0; i < len; i++)
{   //jint 本质long 所以可以赋值
jintp[i] = i * 10;
}

//释放同步
(*env)->ReleaseIntArrayElements(env, jntarray, jintp, 0);

//返回
return jntarray;
}
运行截图:



----------完---------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐