Dan*_*son 6 c malloc free pointers objective-c
在我的应用程序中,我使用此函数创建一个unsigned char指针:
- (unsigned char*)getRawData
{
// First get the image into your data buffer
CGImageRef image = [self CGImage];
NSUInteger width = CGImageGetWidth(image);
NSUInteger height = CGImageGetHeight(image);
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
unsigned char *rawData = malloc(height * width * 4);
NSUInteger bytesPerPixel = 4;
NSUInteger bytesPerRow = bytesPerPixel * width;
NSUInteger bitsPerComponent = 8;
CGContextRef context = CGBitmapContextCreate(rawData, width, height, bitsPerComponent, bytesPerRow, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
CGColorSpaceRelease(colorSpace);
CGContextSetBlendMode(context, kCGBlendModeCopy);
CGContextDrawImage(context, CGRectMake(0.0f, 0.0f, (CGFloat)width, (CGFloat)height), image);
CGContextRelease(context);
// Now your rawData contains the image data in the RGBA8888 pixel format.
return rawData;
}
Run Code Online (Sandbox Code Playgroud)
在另一个类中,我将一个属性分配给该指针,如下所示:self.bitmapData = [image getRawData];
在这个过程中我可以释放那个malloc内存吗?当我尝试在dealloc中释放属性时,它会给我一个exc_bad_access错误.我觉得我在这里缺少一个基本的c或objective-c概念.所有帮助表示赞赏.
| 归档时间: |
|
| 查看次数: |
3473 次 |
| 最近记录: |