Как упоминал Люк, он говорит о JNI. Общий ответ заключается в том, что GC JVM может перемещаться по резервному хранилищу в массив. Тип jintArray - это просто определение типа, которое на самом деле указывает только дескриптор массива.
Если вы манипулируете массивом, вы должны либо использовать SetIntArrayRegion
, который копирует переданный указатель в резервное хранилище,
ИЛИ вы можете использовать комбинацию GetIntArrayElements
, которая будет закреплять или копировать массив, а затем ReleaseIntArrayElements
.
Поскольку jintArray не является правильным массивом C, вы не можете использовать оператор индексатора [].