我在发布的doublearrayelements中遇到了问题,它在这个功能中崩溃所以你能不能帮我解决这个问题 这是我的代码:
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
答案 0 :(得分:0)
ReleaseDoubleArrayElements
用于通过dxyz
获得的原始数组(您的GetDoubleArrayElements
)。这样,JNI为您创建了一个C数组,它需要知道何时解除分配。崩溃最有可能发生,因为Release
正试图将您的dxyz
与free()
解除分配。您已使用dxyz
创建了operator new
,并且您应该使用delete
将其释放。