【问题标题】:Error - void* - unknown size错误 - void* - 未知大小
【发布时间】:2013-11-22 21:12:30
【问题描述】:

我从第三方收到的这个函数包含以下代码,在 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 不是您可以确定其大小的类型。
  • “第 3 方”是 OpenKinect 项目。
  • @MK:是的。那是 OpenKinect。谢谢。

标签: c casting


【解决方案1】:
void *end = data + data_size;

应该是:

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

添加到 void* 是 GCC 扩展。

【讨论】:

    猜你喜欢
    • 2016-09-24
    • 2010-12-24
    • 2012-02-06
    • 2017-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多