我试图用 newElement 覆盖一个元素(大小未知)“copyHere”,但遇到问题。我将 copyHere 设置为我想要覆盖的 elementArr block :
void *copyHere = ((char *)elementArray + (i * elementSize));
copyHere = memcpy(copyHere, *newElement, elementSize);
我收到错误“无效使用 void 表达式”。我如何滥用 void * 或 memcpy?根据我的理解,我向 memcpy 提供目标内存块和源内存块以及我想要复制的源的大小。我已经做到了。对于 void *copyHere,我遍历了 elementArray(类型未知,但大小已知的 elementSize)来找到我想要覆盖的内存块。有什么线索吗?
最佳答案
删除 newElement
之前的 *
。您不能(也不需要)取消引用 void
指针以将其传递给 memcpy
。
关于c - 关于 void* 和泛型函数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5760885/