采取以下代码:
typedef UCHAR MY_BUFFER[6];
class MY_CLASS
{
MY_BUFFER m_buffer;
void Initialize(const MY_BUFFER* newBuffer)
{
memcpy(m_buffer, *newBuffer, sizeof(MY_BUFFER));
}
};
在上面的Initialize函数中,将字节从newBuffer复制到m_buffer的正确方法是吗?还是应该将Initialize函数更像这样:
void Initialize(const MY_BUFFER* newBuffer)
{
memcpy(&m_buffer, newBuffer, sizeof(MY_BUFFER));
}
最佳答案
正确的方法是:
void Initialize(const MY_BUFFER newBuffer)
{
memcpy(m_buffer, newBuffer, sizeof(MY_BUFFER));
}
memcpy
的两个参数都必须是地址。