As far as I know I can't call method from C++ that will return from Java string array, so only solution for this is loop call method that will return array elements on by one, but how can I store them in C++ array?
In Java I have method:
public static String getData(int index){ return arry[index]; }
and in C++:
char * args[10];
for (int i = 0; i < arrayLength; i ++) {
jmethodID mid = env->GetStaticMethodID(INF.cls_JSox, "getData",(I)Ljava/lang/String;");
jobject result = env->CallStaticObjectMethod(cls, mid, num, i);
const char *nativeString = env->GetStringUTFChars( (jstring) result, 0);
const size_t len = strlen(nativeString);
cout << "copying... \n";
strncpy(args[i], nativeString, len);
env->ReleaseStringUTFChars( (jstring)result, nativeString);
}
but when i = 1 I'm getting memory violation error in Java. How can I correctly copy data from received strings to the char * args[10]? The length of every string passed from Java is about 3-5 chars.