在编程中,Kernighan & Ritchie 引入了一条一般规则,即您已为“malloc”分配的所有空间调用“空闲”。
所以下面的代码是正确的:
- (UIImage*) convertImage:(UIImage*)sourceImage {
unsigned char *rawData = malloc(requiredSpace);
...
...
free(rawData);
return imageRef;
}
但是,您也可以在函数中进行封装。所以从函数返回后,内存会自动释放。所以理论上免费在上面的例子中并不是绝对需要的。它是否正确?