Java native interface 环境->;在jni中释放DoubleArrayElements()
我在releasedoublearrayelements中遇到问题,它在这个函数中崩溃了,所以你能帮我解决这个问题吗 这是我的代码:Java native interface 环境->;在jni中释放DoubleArrayElements(),java-native-interface,Java Native Interface,我在releasedoublearrayelements中遇到问题,它在这个函数中崩溃了,所以你能帮我解决这个问题吗 这是我的代码: jdouble *dxyz = new jdouble[3]; dxyz[0] = 0.0; dxyz[1] = 0.0; dxyz[2] = 0.0; jdoubleArray darr = env->NewDoubleArray(3); env->SetDoubleArrayRegion(darr,0,3,d
jdouble *dxyz = new jdouble[3];
dxyz[0] = 0.0;
dxyz[1] = 0.0;
dxyz[2] = 0.0;
jdoubleArray darr = env->NewDoubleArray(3);
env->SetDoubleArrayRegion(darr,0,3,dxyz);
jclass dclass = env->GetObjectClass( darr );
jobjectArray iarr = env->NewObjectArray(nbControlNodes,dclass,darr);
env->ReleaseDoubleArrayElements(darr,dxyz,JNI_ABORT);//its crashing here
ReleaseDoubleArrayElements
用于通过GetDoubleArrayElements
获得的基本数组(您的dxyz
)。这样,JNI就为您创建了一个C-array,并且它需要知道何时进行dellocate。崩溃很可能是因为Release
试图用free()
解除分配您的dxyz
。您已使用operator new
创建了dxyz
,您需要使用delete
释放它