对于memcpy,错误编译器无法将参数2从MyStruct1转换为const void*

Sun*_*een 1 c c++ memcpy

我试图将数据从结构复制到另一个.每个结构可以处理的字节是相同的.我的声明和memcpy如下:

    typedef struct{
        CString strNumber;
        CString strAlpha;

    } _Number;

    typedef struct{
        CString strIterration;
        _Number NumberOne;
        _Number NumberTwo;
    } _Store;

_Store Data1;
_Store Data2;
Run Code Online (Sandbox Code Playgroud)

现在让我们说第一个结构Data1有数据,第二个结构只是声明.

我使用以下代码:

memcpy(&Data2, Data1,   sizeof(_Store));
Run Code Online (Sandbox Code Playgroud)

因为出现错误我无法编译.有任何想法吗?还有其他任何复制数据的方法吗?

sha*_*oth 7

你需要&在两个结构上使用:

memcpy(&Data2, &Data1, sizeof(_Store));
Run Code Online (Sandbox Code Playgroud)

注意:_Store包含CString成员变量(如果它像MFC一样CString)不是按位可复制的.您应该只使用memcpy()按位可复制的类型,否则您可能会遇到未定义的行为.