这是什么意思? void * free_me = 0;

时间:2012-03-15 08:45:45

标签: ios void

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;”意思?这个程序做什么用的?任何提示将不胜感激。

2 个答案:

答案 0 :(得分:3)

void* free_me = 0声明“通用”指针free_me,并为其指定值0

可以使用通用指针,几乎与任何其他指针(int*char*等)一样,但指向void的指针实际上可以指向任何数据类型。

答案 1 :(得分:2)

这段代码非常模糊,正如评论所说,它可以解决iOS中一个不起眼的错误。在某些设备上的早期版本的AV Foundation Framework中,缓冲发生了非常奇怪的事情。此代码复制缓冲区而不是直接使用它。那里有if (true)内容,因此我们可以(最终)为不需要解决方法的设备/ SDK禁用此路径。