C++ ReleaseFloatArrayElements和DeleteLocalRef之间有什么区别

C++ ReleaseFloatArrayElements和DeleteLocalRef之间有什么区别,c++,memory-management,android-ndk,C++,Memory Management,Android Ndk,我正在尝试使用JNI开发android应用程序。我有一个将数组(jfloatArrayfeaturePoints)作为输入的方法: 使用此阵列后,我尝试释放内存。我应该用吗 env->ReleaseFloatArrayElements(featurePoints, flt1, 0); 或 使用GetXxArrayElements()撤消工作时,需要调用ReleaseXxArrayElement() env->ReleaseFloatArrayElements( featurePoi

我正在尝试使用JNI开发android应用程序。我有一个将数组(
jfloatArray
featurePoints)作为输入的方法:

使用此阵列后,我尝试释放内存。我应该用吗

env->ReleaseFloatArrayElements(featurePoints, flt1, 0);


使用GetXxArrayElements()撤消工作时,需要调用ReleaseXxArrayElement()

env->ReleaseFloatArrayElements( featurePoints , (jfloat *)flt1, 0);
// we cleanup local ref 
env->DeleteLocalRef(featurePoints);

使用GetXxArrayElements()撤消工作时,需要调用ReleaseXxArrayElement()

env->ReleaseFloatArrayElements( featurePoints , (jfloat *)flt1, 0);
// we cleanup local ref 
env->DeleteLocalRef(featurePoints);

值得注意的是,GetArrayElements不返回对象,因此没有要发布的本地引用。删除数组对象的本地引用可能也很有用,但这是一个独立的决定。另请参见。值得注意的是,GetArrayElements不返回对象,因此没有要发布的本地引用。删除数组对象的本地引用可能也很有用,但这是一个独立的决定。另见。
env->ReleaseFloatArrayElements( featurePoints , (jfloat *)flt1, 0);
// we cleanup local ref 
env->DeleteLocalRef(featurePoints);