我想屏幕刮從已經在OpenGL渲染了供過於求的窗口形象。在顯示回調方面,我插入了以下代碼:的OpenGL與GLUT--的malloc錯誤
display() {
drawTriangle(); //Renders the image
if(shouldDisplay) {
shouldDisplay=0;
bytes = width*height*3; //Color space is RGB
buffer = (GLubyte *)malloc(bytes); //buffer is global var for now
glFinish();
glReadPixels(0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE, buffer);
}
glutSwapBuffers();
}
此代碼運行後,malloc啓動失敗。它與ENOMEM失敗,錯誤12.我不知道操作系統或GLUT足夠了解爲什麼會發生這種情況。我只是試圖在3 GB的機器上分配17K。我正在使用Windows XP和Visual Studio C++ 2010 Express。任何幫助或建議表示讚賞。
什麼類型的寬度,高度和字節,多少次是代碼的運行,並且你的地方釋放內存? – ergosys
好的..沒有免費()在視線:) – nielsj