我有这个错误:
警告:赋值使指针中的整数不带强制转换[-Wint-conversion]
TabPart[0].nom[20]="alami";
编译此代码时:

typedef struct
{
  char nom[20];
  char prenom[30];
  int dej;
  int din;
  int hot;
  int num;
}Participant;

Participant TabPart[10];
TabPart[0].nom[20]="alami";
TabPart[0].prenom[30]="iliass";
TabPart[0].dej=0;
TabPart[0].din=1;
TabPart[0].hot=2;
TabPart[0].num=1;

最佳答案

您试图将char *分配给char数组的元素,这不是您想要做的。可以使用strcpy将其复制到数组中,也可以使用字符串文字初始化字符数组。

typedef struct
{
  char nom[20];
  char prenom[30];
  int dej;
  int din;
  int hot;
  int num;
}Participant;

Participant TabPart[10] = {{"alami", "iliass", 0, 1, 2, 1}};

或者,可以使用指定的初始值设定项更明确地说明每个字段是什么:
Participant TabPart[10] = {{ .nom = "alami", .prenom = "iliass", .dej = 0,
        .din = 1, .hot = 2, .num = 1}};

关于c - 分配字符时出现结构错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55249753/

10-11 19:14