错误 - 无效* - 未知大小

shu*_*nyo 0 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

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

Dav*_*rtz 7

void *end = data + data_size;
Run Code Online (Sandbox Code Playgroud)

应该:

void *end = ((char *) data) + data_size;
Run Code Online (Sandbox Code Playgroud)

添加到a void*是GCC扩展.