c++ - 访问字节数组的 typedef 指针

标签 c++ arrays pointers typedef

采用以下代码:

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

关于c++ - 访问字节数组的 typedef 指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36312505/

相关文章:

c++ - 如何创建 C++ 用户定义的类,以便该类的 std::vector 不包含该类的某些成员

c++ - “glewGetContext”未在此范围内声明

c++ - 带有默认参数的函数对象的 SFINAE

php - 每次获取时都会从数据库中回显数据

c - 与 C 中的结构和指针相关的问题

c++ - 试图理解 C++ 中的 * 和 &

c++ - 如何在Project CMake中正确包含SDL2源代码

c# - 如何在 LINQ 中插入占位符以便我的组恰好有 24 个点

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

pointers - 尝试将指针传递给向量元素时,对变量的访问指定常量