错误 – 无效* – 未知大小

我从第三方收到的这个函数包含以下代码,它不能在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 ++代码。 谢谢你的帮助。

 void *end = data + data_size; 

应该:

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

添加到void*是GCC扩展。