使用 JNA 将 int** 传递给 C 例程

发布于 2024-11-07 05:33:34 字数 136 浏览 2 评论 0原文

我的 java 程序中有一个 int[][] ,它存储一些我想要计算(更改)的数据 在 C 例程中。但我不知道如何将“指向 int 的指针”传递给 声明 af(int sz, int** 结构) 的 C 代码。有什么想法吗?

谢谢, 卢克.d

I'm having in my java program a int[][] that stores some data I want to compute (alter)
in a C routine. But I can't figure out how to pass the "pointer to pointer to int" to the
C code which declares a f(int sz, int** structure). Any idea?

Thanks,
Luc.d

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

你在我安 2024-11-14 05:33:34

由于这个问题被标记为 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。

Since this is question is tagged JNA,
Similar Example in JNA docs

// 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());

Isn't this what you are looking for ? you use PointerByReference when there is a Pointer to a Pointer.

鹿! 2024-11-14 05:33:34

我认为这个示例可能会派上用场:)

I think this example might come in handy :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文