Я пишу основную программу обращения строк в 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);
}