2013-11-22 28 views
-1

我從第三方收到的這個函數包含下面的代碼,它不能在MS Visual Studio 10中編譯。我認爲有一個投射問題,但不知道如何解決這個問題。錯誤 - void * - 未知的大小

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++代碼。謝謝你的幫助。

+0

'void'不是您可以確定大小的類型。 – 2013-11-22 21:21:27

+0

「第三方」是OpenKinect項目。 –

+0

@MK:啊,是的。這是OpenKinect.Thanks。 – shunyo

回答

5
void *end = data + data_size; 

應該是:

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

添加到void*是一個GCC擴展。

+0

+1'data + = 2'也很容易出問題。 – WhozCraig

+0

是的,我收到了錯誤。這工作。謝謝。 – shunyo