Opengl glReadPixels:读取像素后堆栈周围变量已损坏

Opengl glReadPixels:读取像素后堆栈周围变量已损坏,opengl,stack,glreadpixels,Opengl,Stack,Glreadpixels,我正在尝试使用glReadPixels()读取5*5像素的窗口。这是代码 const unsigned int WINDOW_SIZE = 5; const unsigned int NB_COMPONENTS = 3; GLubyte array[NB_COMPONENTS * WINDOW_SIZE * WINDOW_SIZE]; glReadPixels( 0, 0, WINDOW_SIZE, WINDOW_SIZE, GL_RGB, GL_UNSIGNED_BYTE, array);

我正在尝试使用glReadPixels()读取5*5像素的窗口。这是代码

const unsigned int WINDOW_SIZE = 5;
const unsigned int NB_COMPONENTS = 3;
GLubyte array[NB_COMPONENTS * WINDOW_SIZE * WINDOW_SIZE];
glReadPixels( 0, 0, WINDOW_SIZE, WINDOW_SIZE, GL_RGB, GL_UNSIGNED_BYTE, array);
但此代码在visual studio中会导致以下错误: “变量数组周围的堆栈已损坏”


如果我在数组的大小上加上+4,效果会很好。有人知道为什么吗?

既然你使用的是
GL\u RGB
请确保。

太棒了!谢谢我添加了glPixelStorei(GL_-PACK_-ALIGNMENT,1);