передача int ** в подпрограмму C с использованием JNA - PullRequest
1 голос
/ 14 мая 2011

В моей java-программе есть int [] [], в котором хранятся некоторые данные, которые я хочу вычислить (изменить) в программе на языке C.Но я не могу понять, как передать «указатель на указатель на int» в код C, который объявляет af (int sz, int ** структура).Есть идеи?

Спасибо, Luc.d

Ответы [ 2 ]

2 голосов
/ 14 мая 2011

Поскольку этот вопрос помечен JNA, Аналогичный пример в документации JNA

// Original C declaration
void allocate_buffer(char **bufp, int* lenp);

// Equivalent JNA mapping
 void allocate_buffer(PointerByReference bufp, IntByReference lenp);

// Usage
PointerByReference pref = new PointerByReference();
IntByReference iref = new IntByReference();
lib.allocate_buffer(pref, iref);
Pointer p = pref.getValue();
byte[] buffer = p.getByteArray(0, iref.getValue());

Разве это не то, что вы ищете?вы используете PointerByReference, когда есть указатель на указатель.

1 голос
/ 14 мая 2011

Я думаю этот пример может пригодиться:)

...