我发现这个错误(将'const uint8_t(*)[kStreamChunkSize]'发送到'void *'类型的参数会丢弃限定符)?

时间:2013-06-07 11:19:08

标签: objective-c macos

我在NSData文件中有一个方法。

 - (void)getBytes:(void *)buffer;

但是当我使用这种方法时......

  const uint8_t bytes [kStreamChunkSize];
  [chunk getBytes:&bytes];

然后它给出了这个错误

将'const uint8_t(*)[kStreamChunkSize]'发送到'void *'类型的参数会丢弃限定符

如何解决此错误。请帮帮我。

1 个答案:

答案 0 :(得分:0)

它丢弃了const限定符,这是一个问题。 getBytes:通过将它们写入传入的数组来获取字节。但是,您不能写入const字节的数组(这样做会调用未定义的行为),这就是const的含义。将数组的声明更改为

uint8_t bytes[kStreamChunkSize];

此外,不要将指针传递给数组 - 如果你只是在没有&运算符的情况下使用它的名字,那么无论如何它都会衰变为指向它的第一个元素的指针。