TopMetaFizick
@TopMetaFizick
Все двоит и троит...

Как передать массив из java в c++?

Я могу передовать простые числа типа int , и возвращать их обратно. А int[] не могу передать в с++, говорит ошибка приведения типов.
  • Вопрос задан
  • 405 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
JNIEXPORT void JNICALL Java_SomeClass_someMethod(JNIEnv* env, jobject obj, jintArray array) {
    jsize size = (*env)->GetArrayLength(env, array);
    jint* buffer = (*env)->GetIntArrayElements(env, array, NULL);

    ...

    (*env)->ReleaseIntArrayElements(env, array, buffer, 0);
}

В последнем параметре JNI_ABORT стоит передавать в том случае, если нужны были данные из массива, но сам исходный массив изменять не надо. Если изменения в массиве нужно сохранить, то вместо JNI_ABORT надо передать 0.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mmmaaak
@mmmaaak
Сериализуй данные во что-то языконезависимое, например json, или какой-нибудь универсальный бинарный формат
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы