2012-03-22 30 views
2

私のCはかなり錆びています。上記のコードを考えてみましょう:bufのメモリを解放するか、各呼び出しで同じbuf配列を使用する必要がありますか?ベストプラクティスは何ですか?JNIメモリを解放する

JNIEXPORT jstring JNICALL Java_test_version 
(JNIEnv *env, jobject obj, jint handle) { 

    struct VersionNumber ver; 
    versionNumber_get((void *) handle, &ver); 

    char buf[30]; 
    snprintf(buf, 30, "%d", ver.num); 

    return (*env)->NewStringUTF(env, buf); 
} 
+0

あなたは 'NewStringUTF'がbufのコピーを使用するかどうか心配するべきです – UmNyobe

答えて

2

bufスタック変数である、それはメソッドの戻りとして再利用され、あなたがここに行うためには何もありません。

また、スタック変数であるため、メソッド呼び出しごとに割り当てられます。

関連する問題