Используйте SWIG для обработки функции C, возвращающей указатель на массив структур в Java

Я пытаюсь выяснить, какое изменение файла интерфейса SWIG необходимо для обработки getFoo возвращает указатель, который указывает на массив пользовательской структуры (sender_id_t). Без какого-либо специального кода интерфейса SWIG, я получаю только указатель на стороне Java. Как я могу превратить этот указатель во что-то, что я могу зациклить или перебрать (в Java), чтобы я мог получить каждое значение идентификатора sender_id_t? Ценю любые предложения.

C структура:

typedef unsigned char id_v1_t[32];
typedef id_v1_t id_t;
%rename (Sample) sender_id_t_;
struct sender_id_t_ {
    id_t       id;
    uint32_t   phy_idx;
};

Функция C:

//This will return a pointer to an array of sender_id_t data.  The number of elements is retrieved from a separate call. 
sender_id_t* getFoo(resultset_t* resultset);

Исключение:

 [exec] test_wrap.c: In function `new_foo_array':
 [exec] test_wrap.c:785: error: invalid application of `sizeof' to incomplete type `sender_id_t_' 
 [exec] test_wrap.c: At top level:
 [exec] test_wrap.c:792: error: return type is an incomplete type
 [exec] test_wrap.c: In function `foo_array_getitem':
 [exec] test_wrap.c:793: error: invalid use of undefined type `struct sender_id_t_'
 [exec] test_wrap.c:793: error: dereferencing pointer to incomplete type
 [exec] test_wrap.c:793: warning: `return' with a value, in function returning void
 [exec] test_wrap.c: At top level:
 [exec] test_wrap.c:795: error: parameter `value' has incomplete type
 [exec] test_wrap.c: In function `foo_array_setitem':

Ответы на вопрос(1)

Ваш ответ на вопрос