gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 10:21:14 25 4
gpt4 key购买 nike

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

    typedef struct{
CString strNumber;
CString strAlpha;

} _Number;

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

_Store Data1;
_Store Data2;

现在假设第一个结构 Data1 有数据,第二个刚刚声明。

我正在使用以下代码:

memcpy(&Data2, Data1,   sizeof(_Store));

由于出现错误,我无法编译。有任何想法吗?还有其他复制数据的方法吗?

最佳答案

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

memcpy(&Data2, &Data1, sizeof(_Store));

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

关于c++ - 错误编译器,无法将参数 2 从 MyStruct1 转换为 const void*,用于 memcpy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4438540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com