我有一个函数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/