2016-01-14 136 views
0

我想复制2个数组,因为传统的复制方法没有给我更新的值,所以我尝试通过memcpy方法C++错误:'没有合适的从[class name]到void *的转换函数

ret_t ifxPkc:: regSCM0ReadCB(uint32 idx,tlm::tlm_generic_payload& p) 
{ 

    memcpy(scmr0Reg_,scMem, sizeof(scmr0Reg_)); 

    return scmr0Reg_[idx].read(p); 
} 

这是一个回调函数。在这里,idx递增用于通过另一段代码每个呼叫。

scmr0Reg_属于IfxPkcScmR0Register类。 此外,IfxPkcScmR0Register属于

class IfxPkcScmR0Register : public SC_BSX::IdxReg32 

使用上述格式我得到的错误 -

C++错误:“从[类名称]没有合适的转换功能为“无效*”

能否在获得帮助我如何在memcpy函数中使用它?

谢谢。

+2

如果您想让某人了解此处发生的事情,请记录[MCVE](http://stackoverflow.com/help/mcve)。这对于我们能够帮助你以及对可能有同样问题的其他人来说都很重要。 –

回答

1

memcpy将指针作为前两个参数。由于从代码中不明显,scmr0Reg_scMem的数据类型是什么,我认为它们是一些对象。在这种情况下,您需要将指针传递给它们,如memcpy(&scmr0Reg_, &scMem...

+0

谢谢@dmi错误消失了。 'scMem'的类型是'unsigned long scMem [128]' –

+0

@KarthikRao那么你不应该写'&scMem'。 – rozina

+0

@rozina你是对的,错误已经消失,但代码正在破裂。我的主要问题是'scMem'具有最新值,当我想将它复制到'scmr0Reg_'时,它不会更新。最初而不是memcpy,我直接写了'scmr0Reg_ [idx] = scMem [idx];'这不起作用,所以我使用了'memcpy'我可以提供任何其他的说明。 –

相关问题