c - 复制到void *指针

标签 c copy void-pointers

我有一个函数getData(void* data)应该将一些内部计算值复制到数据中
例如int r = getRadius();r应该复制到数据,并且是从getData函数返回的这种方式
正确的方法是什么?
我尝试了*(int*)data = r;但我不确定这是否是最佳解决方案。

最佳答案

如果确定由void指针引用的内存是int,则可以确信

*(int *)data = r;

但是,更好的一般解决方案是:
memcpy(data, &r, sizeof(int));

这样,您不必担心字节对齐或其他潜在的麻烦。

关于c - 复制到void *指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10657546/

相关文章:

c - 将元素添加到包含自定义数据类型的简单链接列表

c++ - 是否可以将STL复制功能与 map 一起使用

c - 为什么我需要使用 strdup()?

c - C中void指针的指针运算

c++ - 将 void* 引用为 float 时数据丢失

c++ - 当一次只需要一个类型时,保持指向不同类型的指针的最佳方法是什么?

c - 简单 OpenGL 应用程序中的 “Access violation reading location 0x000000000”

c - 如何在 C 的共享内存中保存一个 int 和一个数组?

java 对象复制,数组索引越界

c - 增加固定间隔的数量