繁体   English   中英

分配字符时的struct erreur

[英]struct erreur while assigning a char

我有这个错误:

警告:赋值会从指针产生整数,而不会进行[-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;
TabPart[0].nom[20]="alami";

您应该将其替换为

strcpy(TabPart[0].nom, "alami");

TabPart.nom [0]是char ,而“ alami”是char* (即, pointer to a charpointer to a char )。

您不能为char分配pointer to a char charpointer to a char ,因为它们不兼容。

您不能只在带有=符号的结构中分配char。 您需要使用strcpy之类的函数将其复制到char数组中。

您试图将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}};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM