gpt4 book ai didi

释放 intbuffer 时 Java 崩溃

转载 作者:行者123 更新时间:2023-12-02 07:37:39 24 4
gpt4 key购买 nike

每当我运行以下代码时,java 在释放 IntBuffer 时都会返回 EXCEPTION_ACCESS_VIOLATION:

public int[] size(){
IntBuffer size=BufferUtils.createIntBuffer(2);
long address=MemoryUtil.memAddress(size);

GLFW.nglfwGetWindowSize(this.handle, address, address+Integer.BYTES);
int[] result=new int[]{size.get(0), size.get(1)};

JEmalloc.nje_free(address);

return result;
}

Pastebin

最佳答案

当没有更多引用时,由 BufferUtils 创建的 ByteBuffer 将被垃圾收集器释放。

如果你想使用JEmalloc.nje_free()来释放缓冲区,那么在分配缓冲区时也需要使用JEmalloc

IntBuffer size = JEmalloc.je_malloc(2 * Integer.BYTES).asIntBuffer();
long address = MemoryUtil.memAddress(size);

[...]

JEmalloc.nje_free(address);

关于释放 intbuffer 时 Java 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43436001/

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