typedef struct { int name; char tags[10][50]; } DietPlan;DietPlan a(1,global_var1);[Error] no matching function for call to 'DietPlan::DietPlan(int, char [10][50])'
时间: 2023-12-31 10:06:04 浏览: 129
typedef struct 用法详解和用法小结
5星 · 资源好评率100%
上述代码中,定义了一个名为DietPlan的结构体,包含一个整型变量name和一个二维字符数组tags。问题出在这行代码上:
```c
DietPlan a(1, global_var1);
```
这行代码试图创建一个名为a的DietPlan类型的变量,并使用参数1和global_var1来初始化它。但是,这样的语法是错误的,因为结构体不是一个函数,不能像函数一样调用它来创建一个变量。
正确的做法是,声明一个DietPlan类型的变量,然后为它的成员赋值。例如:
```c
DietPlan a;
a.name = 1;
strcpy(a.tags[0], "tag1");
strcpy(a.tags[1], "tag2");
// 依次类推,为tags数组中的每个元素赋值
```
在上述代码中,首先声明了一个名为a的DietPlan类型的变量,然后为它的成员name和tags赋值。由于tags是一个二维字符数组,需要使用strcpy函数为每个元素赋值。
阅读全文