Yak*_*kov 2 c copy void-pointers
我有一个函数getData(void* data)
应该复制到数据一些内部计算值,例如int r = getRadius();
r应该被复制到数据,并且是从函数getData返回的这种方式,这是正确的方法吗?我尝试过,*(int*)data = r;
但我不确定这是一个最好的解决方案.
如果您确定void指针引用的内存是int,那么您可以放心
*(int *)data = r;
Run Code Online (Sandbox Code Playgroud)
然而,更好的通用解决方案是:
memcpy(data, &r, sizeof(int));
Run Code Online (Sandbox Code Playgroud)
这样您就不必担心字节对齐或其他潜在的陷阱.