gpt4 book ai didi

java - JNI native 函数内的自定义内存分配

转载 作者:太空宇宙 更新时间:2023-11-04 06:27:15 25 4
gpt4 key购买 nike

我需要在 JNI C 函数中分配字节数组。然后将此数组作为 byte[] 对象传输到 Java 代码中。我知道有一个函数 NewByteArray,但它只接受字节数组的大小作为输入,所以我不能使用自定义内存分配函数。在我的例子中,我需要使用来自 Linux 的非常具体的非标准 malloc 类分配函数。由于资源非常有限,不应进行额外的复制。

最佳答案

如果您使用 byte[],那么您必须从 Java 堆中分配它并允许它控制您的内存管理。

但是,您可以使用 ByteBuffer ,它允许您在 native 代码中执行内存管理。您可以在 native 代码中分配一 block 内存,并在没有副本的情况下从 Java 访问它。

关于java - JNI native 函数内的自定义内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25368049/

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