我最近开始研究 OpenGL 用于个人宠物项目,并且正在编写非常简单的测试程序。然而,即使是我能想到的使用 GLFW 的最简单的程序,我似乎也会发生内存泄漏:
#include <GLFW/glfw.h>
int main()
{
glfwInit();
glfwTerminate();
}
使用 valgrind,我收到消息:
definitely lost: 72 bytes in 1 blocks
indirectly lost: 0 bytes in 0 blocks
possibly lost: 0 bytes in 0 blocks
still reachable: 122,741 bytes in 446 blocks
如果我注释掉 glfwTerminate();
行,我会丢失相同数量的字节,但还有几个“仍然可以访问”的字节(这对我来说很有意义 - 我没有't 终止了 GLFW,所以它分配的任何内存仍然存在)。然后,内存泄漏出现在 glfwInit()
中。这是 GLFW 中的错误,还是我在这个简单的程序中做错了什么?
(注意:每当调用 glfwInit
时发生 72 字节内存泄漏似乎不是什么大问题;我只是希望该数字为 0...)
最佳答案
原来是GLFW的一个bug。 It's been fixed as of 3.2, though - 报告此错误时我使用的是 GLFW 3.1。
关于c++ - GLFW 中的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43832025/