0

我在 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
4

1 回答 1

0

ReleaseDoubleArrayElements旨在用于dxyz通过GetDoubleArrayElements. 这样,JNI 会为您创建一个 C 数组,并且它需要知道何时进行解除分配。崩溃很可能是因为Release试图释放你的dxyzwith free()。您已经创建dxyzoperator new希望使用delete.

于 2012-12-11T23:00:10.677 回答