在我的节目中, 我有一个创建随机生成图像的方法, 只是注意到仪器会泄漏记忆,但我不确定原因。
这是泄漏的部分:
int * getRandomImage(int width, int height) {
int * bytes = new int[height * width]; //this line is pointed by instruments
for (int i = 0; i < height; i++) {
for (int j = 0; j < width; j++) {
bytes[i * width + j] = arc4random();
}
}
return bytes
}
-(void) loadRandomImage {
const int height = 400;
const int width = 400;
int * bytes = getRandomImage(width, height);
CGDataProviderRef provider = CGDataProviderCreateWithData(NULL, bytes, width * height, NULL);
CGColorSpaceRef colorSpaceRef = CGColorSpaceCreateDeviceRGB();
int bitsPerComponent = 8;
int bitsPerPixel = 32;
int bytesPerRow = 4 * width;
CGImageRef imageRef = CGImageCreate(width, height, bitsPerComponent, bitsPerPixel, bytesPerRow, colorSpaceRef, kCGBitmapByteOrderDefault, provider, NULL, NO, kCGRenderingIntentDefault);
CGDataProviderRelease(provider);
UIImage *newUIImage = [UIImage imageWithCGImage:imageRef];
self.imageView.image = newUIImage;
CGImageRelease(imageRef);
}