uint8_t* baseAddress = CVPixelBufferGetBaseAddress(imageBuffer);
void* free_me = 0;
if (true) { // iOS bug?
uint8_t* tmp = baseAddress;
int bytes = bytesPerRow*height;
free_me = baseAddress = (uint8_t*)malloc(bytes);
baseAddress[0] = 0xdb;
memcpy(baseAddress,tmp,bytes);
}
这个程序在zxing包中找到,这句话是什么“void * free_me = 0;”意思?这个程序做什么用的?任何提示将不胜感激。
答案 0 :(得分:3)
void* free_me = 0
声明“通用”指针free_me
,并为其指定值0
可以使用通用指针,几乎与任何其他指针(int*
,char*
等)一样,但指向void的指针实际上可以指向任何数据类型。
答案 1 :(得分:2)
这段代码非常模糊,正如评论所说,它可以解决iOS中一个不起眼的错误。在某些设备上的早期版本的AV Foundation Framework中,缓冲发生了非常奇怪的事情。此代码复制缓冲区而不是直接使用它。那里有if (true)
内容,因此我们可以(最终)为不需要解决方法的设备/ SDK禁用此路径。