2012-03-13 98 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不支持在objective-c?我很困惑。我的代碼有什麼問題?關於malloc和函數傳遞指針指針

+0

你的代碼一切都很好,你是什麼意思ot不工作? Objective-C支持確保malloc。 – fbernardo 2012-03-13 08:37:49

回答

0

guys.Problem solved.there是沒有錯上面的代碼。我犯了一個愚蠢的錯誤,錯誤的分配,如:rgbArray [count] = 255;這應該是* rgbArray [count] = 255; ...並且這改變了數組指針的地址.. 我很抱歉,我沒有發佈完整的代碼..和thx所有你們。

1

你似乎在指針引用正確傳遞。

在有可能潛在地是一個問題的唯一地區被宣佈爲rgbArray空(我認爲這是safter只寫uint32_t的* rgbArray)。另一個問題是,釋放內存

+0

我不明白,NULL在這種情況下沒有什麼區別... – fbernardo 2012-03-13 08:44:08

0

不知道你希望你的方法做(這意味着你可能要爲它找到一個更好的名字)。我只能推測你想讓你的數組以圖像的RGB值填充,不知何故。然而你的方法所做的只是分配一個數組而不做任何事情。