【问题标题】:Conflicting types error on structure array结构数组上的冲突类型错误
【发布时间】:2015-04-20 19:49:13
【问题描述】:

我有以下 C 代码:

#define total 5

typedef struct data{
    int id;
    int age;
    char name[50];
}groups;

groups people[total];
people[1] = {1, 20, "Joseph"};

但是我收到一个错误提示

''people' 中的冲突类型

我不明白为什么。

【问题讨论】:

  • 您可以编辑您的问题并包含完整的错误消息吗?
  • 错误:“人”的类型冲突和警告:数组初始值设定项中的多余元素[默认启用]|
  • 简单解释一下:该行中的 {} 表示 people[] 数组中的 元素 列表,而不是一个元素中的字段列表你的意思是。由于 1、20 和 "Joseph" 不符合组的定义,编译器会抱怨。

标签: c arrays structure


【解决方案1】:

其中任何一个都可以:

groups people[total];
people[1] = (groups) {1, 20, "Joseph"};

或:

groups people[total] = {
    [1] = {1, 20, "Joseph"}
};

【讨论】:

  • 谢谢,工作,我还注意到当我需要从 0 开始时,我正在使用 [1]、[2]、[3] 等...,这更正了警告,只留下你的回答正确的错误,非常感谢!
  • @DanielFernandes 如果确实解决了您的问题,您可以接受答案作为正确答案...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-20
  • 2016-02-07
  • 2013-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多