0

jni メソッドが終了し、jfloatArray を使用している場合は、次のように呼び出す必要があることを知っています。

env->ReleaseFloatArrayElements(vec,in,0);

jfloat配列型ではない単一のプリミティブで同じことを行う方法はどうですか?

4

3 に答える 3

3

JNIインターフェイスがメモリまたは他のリソースを割り当てた可能性がある場合にのみ、クリーンアップする必要があります。のような基本的な型は、基本的な C++ *(通常は float)jfloatの typedefであり、コピーによって渡されます。を宣言すると、それはスタック上の単なる浮動小数点型であり、そのスコープを離れると消えます。jfloat

于 2013-07-11T12:05:06.710 に答える
1

単純なjfloat (実際には typedefed の float) の場合はスタックによって削除されますが、ネイティブ側でnewまたはmallocで割り当てられた jfloat* 配列の場合は、delete[]またはで消去する必要があります。自由

于 2013-07-11T12:17:48.007 に答える