ReleaseFloatArrayElements和DeleteLocalRef的区别是什么?
What is the difference between ReleaseFloatArrayElements and DeleteLocalRef
我正在尝试使用JNI做一个android应用程序。我有一个方法,作为输入数组(jfloatArray
featurePoints):
jfloat* flt1 = env->GetFloatArrayElements(featurePoints,0);
在使用这个数组后,我试图释放内存。我应该使用
吗?env->ReleaseFloatArrayElements(featurePoints, flt1, 0);
或
env->DeleteLocalRef(featurePoints);
当您使用GetXxArrayElements()来撤销工作时,您需要调用ReleaseXxArrayElement()。
env->ReleaseFloatArrayElements( featurePoints , (jfloat *)flt1, 0);
// we cleanup local ref
env->DeleteLocalRef(featurePoints);
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- C++避免重复声明的语法是什么
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- C++从另一个类访问公共静态向量的正确方法是什么
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- 这些情况有什么区别?我怎么知道什么是临时对象?
- 如果我提前将参数声明为变量而不是将它们内联写入函数调用,那有什么区别(在内存方面)?
- C++和Python之间平等含义的区别的根源是什么?
- 尾随空格是什么意思,它和空白有什么区别?
- 调试构建和发布构建、区别和用途是什么意思
- std::ifstream::in 和 std::ios::in 有什么区别?(显然是 C++ 中 std::ifstr
- 在 C++ STL 的比较函数中使用"<="符号而不是"<"符号有什么区别?
- 在头中声明变量而不是在源文件(cpp/h)中声明变量有什么区别
- "Thing thing;"和"Thing thing = Thing();"有什么区别,什么时候应该使用一个而不是另一个?
- 如果 a 是 cv::Mat 和 cv::Mat b=a.row(1),那么两个 cv::Mat 实例有什么区别
- 如果f是双精度数,f+=1和f+=1.0有什么区别吗?
- char和CString的区别和关系是什么?
- 那么,是什么区别了template(c.end(),_1)和template_back(_1)呢
- C++:按变量值而不是数字移位 ->有什么区别?