Ho qualcosa di simile:Accesso a un array di puntatori all'interno di una struttura da Java con SWIG
typedef struct {
char * content;
} Boo;
typedef struct {
Boo **data;
int size;
} Foo;
voglio convertire Boo ** data
ad un array con Boo
elementi (Boo[]
) in Java con SWIG. E poi leggere l'array (non voglio editare, eliminare e creare un nuovo array dal codice Java). Nella documentazione SWIG viene descritto come eseguire questa operazione con carrays.i
e array_functions
, ma il membro della struttura data
deve essere di tipo Boo*
. C'è una soluzione del mio problema?
MODIFICA: Mi sono affrettato e ho dimenticato di scrivere che voglio generare classi Java con SWIG per collaborare con le strutture C.
A meno che non si aggiunga una lunghezza a 'Foo', sembra totalmente impossibile poiché non si può dedurre magicamente la lunghezza dal puntatore da solo. – unwind
@unwind Mi dispiace, ho dimenticato di aggiungere il membro 'size'. Ho modificato la mia domanda. –
Supponi di avere più di 3 elementi nella struttura dati. Come accederai al 3 ° elemento? Supponiamo di avere un oggetto 'Foo x' con' x.size> = 3'. – pmg