gpt4 book ai didi

java - 使用 SWIG 从 Java 访问结构中的指针数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:22:23 27 4
gpt4 key购买 nike

我有这样的东西:

typedef struct {
char * content;
} Boo;

typedef struct {
Boo **data;
int size;
} Foo;

我想使用 SWIG 在 Java 中将 Boo ** 数据 转换为包含 Boo 元素 (Boo[]) 的数组。然后读取数组(我不想从 Java 代码编辑、删除和创建新数组)。在 SWIG 文档中描述了如何使用 carrays.iarray_functions 执行此操作,但是结构的成员 data 必须是 类型嘘*。我的问题有解决方案吗?

编辑:时间仓促忘了写想用SWIG生成Java类配合C结构。

最佳答案

解决方法很简单。只需在 swig 界面中使用:

%include <carrays.i>
%array_functions(Boo *, boo_array);

然后从 java 访问:

SWIGTYPE_p_p_Boo results = foo.getData();
for(int i = 0; i < foo.getSize(); i++) {
Boo booResult = foo.boo_array_getitem(results, i);
}

获取数组的内容。

关于java - 使用 SWIG 从 Java 访问结构中的指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11952365/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com