错误C2036:'void *':未知大小

时间:2016-05-26 12:15:10

标签: c visual-studio void void-pointers

我正在使用visual studio处理一个C项目。我试着编译以下代码:

void shuffle(void *arr, size_t n, size_t size)
{
        ....
        memcpy(arr+(i*size), swp,  size);
        ....  
}

我在Visual Studio Compiler中遇到以下错误:

error C2036: 'void *' : unknown size

代码与GCC编译良好。如何解决这个错误?

1 个答案:

答案 0 :(得分:8)

您无法对void *执行指针运算,因为void没有定义的大小。

将指针投射到char *,它将按预期工作。

memcpy((char *)arr+(i*size), swp,  size);