Во время обращения строки добавляется дополнительный символ для размера массива менее 5 в c с использованием jni - PullRequest
0 голосов
/ 25 марта 2019

Я пишу основную программу обращения строк в c, получая ввод из java через jni. Я инициализирую выходной массив динамически, получая вывод входной строки. Но выходные данные всегда имеют дополнительную букву, если длина строки меньше 5. Например, для «hello» выводится «ollehp». Так как я могу это исправить?

Это мой код.

JNIEXPORT jstring JNICALL Java_JavaTest_reversal(JNIEnv * env, jobject obj, jstring input)
{
        const char *str = (*env)->GetStringUTFChars(env, input, 0);
        const int length = (int)strlen(str);
        int l = length;
        char output[l];
        int j = length-1;
        for(int i = 0 ; i < length ; i++)
        {
                output[j] = str[i];
                j--;
        }
        (*env)->ReleaseStringUTFChars(env, input, str);
        printf("output %s \n",output);
        return (*env)->NewStringUTF(env, output);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...