使用 C++、SDL、OpenGL 和 GLEW 时出现无法解释的内存错误

Unexplained memory error using C++, SDL, OpenGL and GLEW

这是我的整个应用程序(精简到要点):

#include <stdio.h>
#include <GL/glew.h>
#include <SDL.h>
#include <SDL_opengl.h>
#include <gl/glu.h>

int main( int argc, char* args[] )
{
    SDL_Init(SDL_INIT_VIDEO);
    SDL_Window* gWindow = SDL_CreateWindow( "title", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN );
    SDL_GLContext gContext = SDL_GL_CreateContext( gWindow );
    glewInit();

    GLfloat *floatArray = new GLfloat(108);
    floatArray[107] = 0.0f;

    GLuint glBuffer;
    glGenBuffers(1, &glBuffer);

    return 0;
}

这个和需要的库都是Visual Studio2012年编译的。

此代码以正确的顺序初始化 OpenGL 上下文所需的所有系统,据我所知没有遗漏任何内容(仅在它中断后才需要清理,所以我将其删除)。

它在行 glGenBuffers(1, &glBuffer); 处中断,错误为 "SOFT323_vs11_2012.exe has triggered a breakpoint."

设置超出 floatArray[9] 的元素需要将其打断。

我该如何解决这个问题?是其中一个库出现故障还是我使用不当?

这会分配一个 GLfloat,初始化为值 108.0f

GLfloat *floatArray = new GLfloat(108);

您想分配一个数组:

GLfloat *floatArray = new GLfloat[108];