gpt4 book ai didi

c++ - 与结构数据赋值的不兼容类型(相同类型!)

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

我有一个结构:

struct record {
char team[40];
}

然后我尝试将它的属性复制到另一个结构。

struct record rec2;
struct record rec;

rec.team = rec2.team;

除此之外,我在 rec.team = rec2.team 行收到以下编译时错误:

error: incompatible types in assignment

如果我对值进行硬编码,则会出现同样的问题。

我的理解是这是不可能的,但无论如何它显然正在发生。如果能深入了解这里发生的事情,我将不胜感激。

最佳答案

数组不可赋值。

假设您真的在使用 C++,一个明显的替代方法是使用 std::vectorstd::string,两者都是可赋值的。

如果您做不到,您可以创建一些类作为数组的包装器,然后在您的记录 中包含该类的一个实例。正如乔纳森·莱弗勒 (Jonathan Leffler) 好心提醒我们的那样,将数组包装在结构中使其可赋值,即使数组本身不是。

如果由于某种原因你不能这样做,你可以使用std::copy(在C++中)或memcpy(在C中)复制内容阵列。至少在我看来,这绝对应该是你的最后选择,因为它把将数据从一个字段正确复制到另一个字段的负担放在了代码用户身上,而不是让代码让用户轻松完成。

关于c++ - 与结构数据赋值的不兼容类型(相同类型!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23550951/

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