0

我只是偶然发现了一个非常棘手的问题。

在适用于 iOS 的 openGL 应用程序的上下文中,我尝试调用 glReadPixels。因此,一开始就创建/分配了一个全局缓冲区变量。我尝试在该缓冲区上使用 glReadPixel-Function,但没有成功。我没有得到任何新照片,只是废话。

所以我的问题是:为什么我需要在分配的缓冲区空间上使用 free(),当我想在最终释放它之前多次使用该内存的位置时?

参见例如:

int bytes = width*height*3; //Color space is RGB
if(buffer == null)
    buffer = (GLubyte *)malloc(bytes);

glReadPixels(0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE, buffer);
free(buffer);

编辑:我替换了 free(bytes); 带免费(缓冲区);

4

0 回答 0