0

我想我错过了一些关键的东西,我找不到答案。如果我想在结构中使用字符串,使用 char 数组还是指向它们的指针更好?以下代码按预期工作,但会引发警告“警告 C4047 'function': 'const char ' 在间接级别上与 'char ( )[3] 不同”

与以下结构定义一起使用时

typedef struct element {
    char name[20];
    char symb[3];
    double wt;
}element;

并遵循创建元素的过程

element e;
char name[20];
char symbol[3];
scanf("%s %s %lf", &name, &symbol, &e.wt);
strcpy(&e.name, &name);
strcpy(&e.symb, &symbol);
4

1 回答 1

0

检查数据类型。

改变

 strcpy(&e.name, &name);

 strcpy(e.name, name);

scanf("%s %s %lf", &name, &symbol, &e.wt);

scanf("%s %s %lf", name, symbol, &e.wt);

也就是说,最好使用fgets()接受用户输入。如果必须使用,则必须在使用扫描值之前scanf()检查调用是否成功。scanf()

于 2020-07-09T12:32:26.053 回答