2012-03-13 13 views
1
- (void) rgbMatrix:(UIImage *)i toRGB:(uint32_t **)rgbArray{ 
    int m_width = i.size.width; 
    int m_height = i.size.height; 
    *rgbArray = (uint32_t *) malloc(m_width * m_height * sizeof(uint32_t)); 
} 

uint32_t *rgbArray = NULL; 
[self rgbMatrix:image toRGB:&rgbArray]; 

誰かが助けることができますか?これは動作しません。私は混乱しています。私のコードに何が間違っていますか? mallocと関数についてポインタをポインタに渡す

+0

コードに問題はありませんが、どうしてうまくいかないのですか?確かに、Objective-Cではmallocがサポートされています。 – fbernardo

答えて

0

人。問題が解決しました。上記のコードで何も問題はありません。私は愚かな間違い、間違った割り当てを行った:rgbArray [count] = 255;これは* rgbArray [count] = 255; ...そしてこれは配列ポインタのアドレスを変更します。 私は完全なコードを投稿していないのですみませます。

1

参照によってポインタを正しく渡しているようです。

問題が発生する可能性があるのは、rgbArrayをnullとして宣言することだけです(私は、uint32_t * rgbArray;と書いても構いません)。もう一つの問題はメモリを解放することです

+0

私はそれを得ることはありません、NULLはこの場合に違いはありません... – fbernardo

0

あなたのメソッドが期待していることが分かりません(つまり、その名前が分かりやすいはずです)。どういうわけか、あなたの配列が画像のRGB値で塗りつぶされるように思っています。しかし、あなたのメソッドが何をしているのかは配列を割り当てて、何もしません。

関連する問題