【问题标题】:Problem with about void* and generic function关于 void* 和泛型函数的问题
【发布时间】:2011-04-22 23:09:08
【问题描述】:

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

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

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

【问题讨论】:

    标签: c


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      如果 newElement 的类型为 void,则不能取消引用 *memcpy 无论如何都需要指针。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-01
        • 1970-01-01
        • 2011-04-28
        • 1970-01-01
        • 2010-10-15
        相关资源
        最近更新 更多