请教JNI调用C++方法的内存管理问题
请教个JNI的问题,看下面注释的地方,这个result指针所指内存是否需要手动释放?
env->SetFloatArrayRegion(resultArr, 0, 2, result);
这句代码是不是让resultArr指向了result的地址,然后jvm会负责回收这个内存?
JNIEXPORT jfloatArray JNICALL Java_game_recast_autoHeight(JNIEnv *env, jclass jobj, jint jsn, jfloatArray jpos, jint jflag) {
try{
float pos[3];
jfloat* tmp = env->GetFloatArrayElements(jpos, 0);
dtVcopy(pos, tmp);
float* result = posHight(jsn,pos,jflag);
_jfloatArray* resultArr = env->NewFloatArray(2);
env->SetFloatArrayRegion(resultArr, 0, 2, result);
//delete result; //???这个地方如果释放掉result指针,会导致java访问内存崩溃!
return resultArr;
}catch(exception& e){
std::cerr << "posHeight err:(" << jsn << ")" << e.what() << std::endl;
}
}
env->SetFloatArrayRegion(resultArr, 0, 2, result);
这句代码是不是让resultArr指向了result的地址,然后jvm会负责回收这个内存?
...全文
相关推荐
CPP调用JAVA函数Demo
CPP调用JAVA函数Demo 需要的可以下载来看看
jni-bridge.rar_jni
JNI registration Source Code for Andriod.
使用JNI进行混合编程:在Java中调用C/C++本地库
NULL 博文链接:https://conkeyn.iteye.com/blog/1597188
Jvm.rar_jni_jni 线程_jvm
java jni thread 线程源码例子
java调用c++生成so库
linux 环境下java调c++生成的so库,对应博客地址: http://blog.csdn.net/woniu211111/article/details/78041868


非技术区
