错误 - 无效* - 未知大小

时间:2013-11-22 21:12:30

标签: c casting

我从第三方收到的这个函数包含以下不能在MS Visual Studio 10中编译的代码。我认为有一个转换问题,但不知道如何解决这个问题。

void dump_ffmpeg_pad16(FILE *stream, uint32_t timestamp, void *data,
                   int data_size)
{
    unsigned int z=0;
    void *end = data + data_size;
    while (data < end) {
        z = *(unsigned short*)data;
        fwrite(((char*)(&z)), 3, 1, stream);
        data += 2;
    }
}

已经指示他们帮助编译为C ++代码。谢谢你的帮助。

1 个答案:

答案 0 :(得分:7)

void *end = data + data_size;

应该是:

void *end = ((char *) data) + data_size;

添加到void*是GCC扩展程序。