我正在使用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编译良好。如何解决这个错误?
答案 0 :(得分:8)
您无法对void *
执行指针运算,因为void
没有定义的大小。
将指针投射到char *
,它将按预期工作。
memcpy((char *)arr+(i*size), swp, size);