Почему я должен освобождать эти данные? Я хозяин?

Это странно. В технических вопросах и ответах Apple говорит следующее:

void *data = CGBitmapContextGetData (cgctx);
if (data != NULL)
{

    // **** You have a pointer to the image data ****

    // **** Do stuff with the data here ****

}

// When finished, release the context
CGContextRelease(cgctx); 
// Free image data memory for the context
if (data)
{
    free(data);
}

Я просмотрел документацию для CGBitmapContextGetData, и в ней не упоминается, что я несу ответственность за предоставление данных, когда я вызываю это. Уже существует вызов CGContextRelease, который очищает контекст.

Какой смысл в дополнительном освобождении данных внутри контекста? Это просто указатель на эти данные, верно? Почему они называют здесь free (data) ?

7
задан Proud Member 17 June 2011 в 20:32
поделиться