LWJGL 3 malloc returning null?



所以我正在使用 lwjgl 3 并尝试使用 stb 库渲染文本。我正在使用此示例来创建自己的实现。但是当我使用 malloc 设置 STBTTPackedchar.Buffer 时,它会返回 null。如果我将大小更改为 3 * 128 而不是 6 * 128,它可以正常工作。也许这是我对malloc的理解有问题?据我所知,malloc 以字节的形式分配内存,如果无法分配该空间内存,它将返回 null。如果是这种情况,我不明白为什么这会返回 null,因为我的计算机中有足够的内存。

下面是一个最小的测试用例:

import org.lwjgl.stb.STBTTPackedchar;
public class Test {
    private static STBTTPackedchar.Buffer chardata;
    public static void main(String[] args) {
        chardata = STBTTPackedchar.malloc(6 * 128);
        if (chardata == null) {
            System.out.println("Null");
        } else {
            System.out.println("Not Null");
        }
        chardata.free();
    }
}

LWJGL 3.1.3 版本中有一个错误,影响结构缓冲区的大小malloc(不是calloc(分配。这已经在最新的 3.1.4 稳定版和最新的夜间版本中得到了修复,可以从 https://www.lwjgl.org/customize 或从 oss.sonatype.org 的 Maven Snapshot 存储库下载为 3.1.4-SNAPSHOT。此外,LWJGL 3.1.4 版本可能会在今晚/晚上(欧洲中部时间(发布。

有关详细信息,请参阅:https://github.com/LWJGL/lwjgl3/commit/c7c94340d6a9796d38b2fb8292fe6d1dbff8ff04

以及当前 3.1.3 版本的(编辑(发行说明:https://github.com/LWJGL/lwjgl3/blob/master/doc/notes/3.1.3.md#known-issues

相关内容

  • 没有找到相关文章

最新更新