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

ReleaseDoubleArrayElementsdxyz経由で取得したプリミティブ配列 ( yours ) に使用することを意図していますGetDoubleArrayElements。そうすれば、JNI は C 配列を作成し、いつ解放するかを知る必要があります。がwithReleaseの割り当てを解除しようとしているために、おそらくクラッシュが発生します。で作成し、 で解放する必要があります。dxyzfree()dxyzoperator newdelete

于 2012-12-11T23:00:10.677 に答える