かなりトリッキーな問題に出くわしました。
iOS 用の openGL アプリのコンテキストで、glReadPixels を呼び出そうとしました。そのため、最初にグローバル バッファ変数が 1 回作成/割り当てられました。そのバッファで 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); を置き換えました。無料で(バッファ);