错误 C2036:'void *':未知大小
error C2036: 'void *' : unknown size
我正在使用 visual studio 处理一个 C 项目。我尝试编译以下代码:
void shuffle(void *arr, size_t n, size_t size)
{
....
memcpy(arr+(i*size), swp, size);
....
}
Visual studio 编译器出现以下错误:
error C2036: 'void *' : unknown size
代码在 GCC 下编译良好。如何解决这个错误?
您不能对 void *
执行指针运算,因为 void
没有定义的大小。
将指针指向 char *
,它将按预期工作。
memcpy((char *)arr+(i*size), swp, size);
我正在使用 visual studio 处理一个 C 项目。我尝试编译以下代码:
void shuffle(void *arr, size_t n, size_t size)
{
....
memcpy(arr+(i*size), swp, size);
....
}
Visual studio 编译器出现以下错误:
error C2036: 'void *' : unknown size
代码在 GCC 下编译良好。如何解决这个错误?
您不能对 void *
执行指针运算,因为 void
没有定义的大小。
将指针指向 char *
,它将按预期工作。
memcpy((char *)arr+(i*size), swp, size);