4

私が返すメソッドがありunsigned char *ます:

- (unsigned char *)calledMethod {
    ...
    unsigned char *result = (unsigned char*) calloc(size * 4, sizeof(unsigned char));
    ...
    return result;
}

問題は、このメソッドを呼び出すときです。

unsigned char *myVariable = [myClass calledMethod];

メモリリークが発生します。

メモリを解放するにはどうすればよいですか?

私はすでに試しましたが、役に立ちfree(myVariable)ません。メソッドを呼び出しfree(result)calledMethodもリークはありませんが、それを返すことはできません。前もって感謝します!

編集:

問題は、 UIImage のピクセル データ ( :rgbamyVariableごとに 4 つのコンポーネント) を格納していることです。CGPointいくつかのピクセルを変更して、画像を再構築する必要があります。次のようなポイントのデータにアクセスしています。

int byteIndex = (bytesPerRow * point.y) + point.x * bytesPerPixel;
CGFloat red   = (myVariable[byteIndex]     * 1.0) / 255.0;
CGFloat green = (myVariable[byteIndex + 1] * 1.0) / 255.0;
CGFloat blue  = (myVariable[byteIndex + 2] * 1.0) / 255.0;
CGFloat alpha = (myVariable[byteIndex + 3] * 1.0) / 255.0;

を使用すると、パラメータはNSMutableData何になり、特定の のデータをどのように変更しますか?length[NSMutableData dataWithBytes:(const void *) length:(NSUInteger)]CGPoint

4

3 に答える 3