JNI освобождает память - PullRequest
       15

JNI освобождает память

2 голосов
/ 22 марта 2012

Мой C довольно ржавый.Рассмотрим приведенный выше код: я должен освободить память для buf или каждый вызов использует один и тот же массив buf?Какова лучшая практика?

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);
}

1 Ответ

2 голосов
/ 22 марта 2012

buf - это переменная стека, она будет возвращена при возврате метода, здесь вам нечего делать.

Кроме того, поскольку это переменная стека, она будет выделена для каждого вызова метода..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...