C++ 检测到堆栈崩溃glGetTexImage

C++ 检测到堆栈崩溃glGetTexImage,c++,opengl,C++,Opengl,以下是运行时导致堆栈崩溃的代码: GLubyte pixels[SCREEN_WIDTH*SCREEN_HEIGHT*3]; glBindTexture(GL_TEXTURE_2D,fbo->renderedTexture); glGetTexImage(GL_TEXTURE_2D,0,GL_RGB,GL_UNSIGNED_BYTE,pixels); 我已经确定函数本身不是问题,因为它与sdl曲面一起工作。可能的原因: 像素的大小超过了剩余的堆栈数量(可用的堆栈数量有限),这就是破坏

以下是运行时导致堆栈崩溃的代码:

GLubyte pixels[SCREEN_WIDTH*SCREEN_HEIGHT*3];


glBindTexture(GL_TEXTURE_2D,fbo->renderedTexture);
glGetTexImage(GL_TEXTURE_2D,0,GL_RGB,GL_UNSIGNED_BYTE,pixels);
我已经确定函数本身不是问题,因为它与sdl曲面一起工作。

可能的原因:

像素的大小
超过了剩余的堆栈数量(可用的堆栈数量有限),这就是破坏堆栈的原因。不要将堆栈用于大的东西


另一个可能的原因是,
像素
的大小太小,无法使纹理数据与应用的所有填充参数(对齐、行间距)相匹配。

什么是
GL\u PACK\u对齐
设置?我们没有足够的信息为您推断问题。请发布一个简单的工作示例。