LWJGL 3 malloc 返回空值?

LWJGL 3 malloc returning null?

所以我正在使用 lwjgl 3 并尝试使用 stb 库呈现文本。我正在使用 this 示例来创建我自己的实现。但是当我使用 malloc 设置 STBTTPackedchar.Buffer 时,它 return 为空。如果我将大小更改为 3 * 128 而不是 6 * 128,它就可以正常工作。也许这是我对malloc的理解有问题?据我所知,malloc 以字节的形式分配内存,如果无法分配 space 内存,它将 return null。如果是这样的话,我不明白为什么这会是 returning 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 快照存储库下载 3.1.4-SNAPSHOT。 LWJGL 3.1.4 版本也可能会在这个 evening/night(CET 时间)发布。

有关详细信息,请参阅: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