c++ - 使用 GLM 时内存泄漏

标签 c++ memory-leaks glm-math

我在我的 SDL+OpenGL 项目中使用 glm (Opengl Math)。但我注意到,代码可能会泄漏内存。这是一个例子:

#include <glm/glm.hpp>

int foo()
{
        glm::vec4 Position = glm::vec4(glm::vec3(0.0), 1.0);
        glm::mat4 Model = glm::mat4(1.0);
        Model[4] = glm::vec4(1.0, 1.0, 0.0, 1.0);
        glm::vec4 Transformed = Model * Position;
        return 0;
}

在第一行中,我们创建了一个新的 glm::vec3 实例,但在该函数的末尾,我们没有释放分配的内存。如果我在循环中调用函数foo,那么它会不会泄漏内存?

最佳答案

由于实例不是使用 new 创建的,它们将被放置在堆栈上,而不是堆上。因此,当 foo 使用的堆栈被清除时,这些实例的内存将被重新声明。

关于c++ - 使用 GLM 时内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33881814/

相关文章:

c++ - 从 glm::project 输出计算 z-buffer

c++ - 创建相机以旋转立方体不起作用

c++ - OpenGL 在绘制一个网格时绑定(bind)多个纹理

c++ - 使用#pragma once 有什么危险?

Java 3D 内存泄漏

visual-studio-2010 - VC10 中的 CDialog 内存泄漏

opengl - 如何按给定方向旋转矢量

c++ - 捕获全局鼠标滚动,并将自定义鼠标滚动事件发送到应用程序

c++ - 包括 DShow.h 会破坏 BDS2006 上的 VCL AnsiString::sprintf()

javascript - 我应该在什么时候或在什么情况下使 jQuery 中的对象无效?