【发布时间】:2021-11-09 06:46:29
【问题描述】:
由于字符串/char 数组,我无法实例化结构。
这是我的结构:
struct Drink {
char name[10];
int volume;
double price;
int quantity;
};
这是我得到错误的地方:
void loadDrinksFromFile(const char* filename) {
FILE *fp;
fp = fopen(filename, "r");
int count = 0;
char name[10];
int volume;
double price;
int quantity;
while (fscanf(fp, "%s %d %lf %d", name, &volume, &price, &quantity) != EOF) {
// name is the cause of the error
machine[count++] = Drink{ name, volume, price, quantity };
}
fclose(fp);
}
上面写着a value of type char * cannot be used to initialize the entity of type char。
为什么我的代码首先尝试接收 char 类型?
我的结构期待char name[10] 这是chars 的数组
我正在传递chars 的数组。
我尝试添加* 和&,我认为这也没有意义,但它仍然不起作用。
谁能帮我理解这个?
【问题讨论】:
-
这是 C 还是 C++?
-
固定长度的数组复制从未成为标准的 C 语言。
标签: c++ arrays c string struct