我有一个结构:
struct record {
char team[40];
}
Run Code Online (Sandbox Code Playgroud)
我尝试将其属性复制到另一个结构.
struct record rec2;
struct record rec;
rec.team = rec2.team;
Run Code Online (Sandbox Code Playgroud)
除此之外,我rec.team = rec2.team在行上得到以下编译时错误:
error: incompatible types in assignment
Run Code Online (Sandbox Code Playgroud)
如果我对值进行硬编码,则会出现同样的问题.
我的理解是,这是不可能的,但无论如何它显然正在发生.我很感激任何洞察这里发生的事情.
数组不可分配.
假设你真的使用C++,一个明显的选择是使用a std:::vector或者std::string其中任何一个都可以赋值.
如果你不能这样做,你可以创建一个类作为数组的包装,然后在你的数组中包含该类的实例record.正如Jonathan Leffler提醒我们的那样,将数组包装在一个结构中使得它可以赋值,即使数组本身不是.
如果由于某种原因无法执行此操作,则可以使用std::copy(在C++中)或memcpy(在C中)复制数组的内容.至少在我看来,这应该是你的最后选择,因为它将代码用户正确地将数据从一个字段复制到另一个字段的负担,而不是让代码使用户容易.