关于void *和泛型函数的问题

时间:2011-04-22 23:09:08

标签: c

我试图用newElement覆盖一个元素(未知大小)“copyHere”,但是我遇到了问题。我将copyHere设置为我要覆盖的elementArr的块:

void *copyHere = ((char *)elementArray + (i * elementSize));
copyHere = memcpy(copyHere, *newElement, elementSize);

我收到错误,“无效使用void表达式”。我如何滥用void *或memcpy?根据我的理解,我在memcpy中提供了一个目标内存块和一个内存源块以及我要复制的源代码大小。我做到了这一点。对于void * copyHere,我遍历了elementArray(未知类型,但已知大小为elementSize)来查找我想要覆盖的内存块。有线索吗?

2 个答案:

答案 0 :(得分:1)

删除*之前的newElement。您不能(也不需要)取消引用void指针将其传递给memcpy

答案 1 :(得分:1)

如果newElement的类型为void,则您无法取消引用*。 <{1}}无论如何都需要指针。