【问题标题】:i am confused.what's wrong with my code ? About malloc and function pass pointer to pointer [closed]我很困惑。我的代码有什么问题?关于 malloc 和函数将指针传递给指针 [关闭]
【发布时间】:2012-03-13 08:06:39
【问题描述】:
- (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];

有人可以帮忙吗?这不起作用。在objective-c中使用malloc的方式不支持吗?

【问题讨论】:

  • 你的代码一切正常,你的意思是 ot 不起作用? Objective-C 确实支持 malloc。

标签: objective-c ios pointers malloc


【解决方案1】:

您似乎正确地通过引用传递了指针。

可能存在问题的唯一领域是将 rgbArray 声明为 null(我认为只写 uint32_t *rgbArray; 会更安全)。另一个问题是释放内存

【讨论】:

  • 我不明白,在这种情况下 NULL 没有任何区别......
【解决方案2】:

不确定你希望你的方法做什么(这意味着你应该为它找到一个更好的名字)。我只能推测您希望您的数组以某种方式被图像的 RGB 值填充。然而,您的方法所做的只是分配一个数组,而没有做任何事情。

【讨论】:

    【解决方案3】:

    伙计们。问题解决了。上面的代码没有任何问题。我犯了一个愚蠢的错误,错误的分配,例如:rgbArray[count] = 255;这应该是 *rgbArray[count] = 255;...这会改变数组指针的地址.. 很抱歉我没有发布完整的代码。谢谢你们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-03
      • 1970-01-01
      • 2014-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多