Java native interface 环境->;在jni中释放DoubleArrayElements()

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

我在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,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
释放它