c - 错误 C2036 : 'void *' : unknown size

标签 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 编译器时遇到以下错误:

error C2036: 'void *' : unknown size

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

最佳答案

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

将指针转换为 char *,它将按预期工作。

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

关于c - 错误 C2036 : 'void *' : unknown size,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37460579/

相关文章:

c - 指向数组的指针和指针数组

visual-studio - Visual Studio 错误 : The "GenerateResource" task failed unexpectedly

c# - 如何在 C# 中更改 WMV 文件的分辨率

C 编译器检查 typedef'ed void *

c++ - (void)obj 和 void(obj) 之间的区别

c++ - 计算飞行距离的程序

c - 使用信号量来管理更新全局

c++ - Linux 中存在段错误的 poll() 系统调用核心转储

c++ - 为什么 `(a--> 0)` 和 `((a--) > 0)` 相同?

.net - Visual Studio Shell - 创建自定义 IDE