采取以下代码:

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的两个参数都必须是地址。

08-06 06:01