错误:“ const char *”类型的值不能用于初始化“ char”类型的实体

时间:2019-04-04 03:17:34

标签: c++ struct char

由于某种原因,下面的指示代码显示错误消息:“类型为“ const char **的值(当然应该仅是一个星号)”不能用于初始化类型为“ char”的实体”。我觉得这很奇怪,因为fname和lname似乎没有什么不同,但是它们并没有出现我所期望的错误。我也尝试将char phone变成char ** phone,但没有成功。有人可以让我知道问题是什么以及如何解决?

 struct Name {

    char fname[15];
    char lname[15];

};

struct Info {

    int grade;
    char phone[15];

};

struct Mark {

    int math;
    int sci;
    int eng;

};

struct Student {

    Name n;
    Info i;
    Mark m;

};

int main()
{

Student class_list[MAX_CLASS_SIZE] = {
    // Errors here          V V V V V V V 
    {"Bob", "Smith"}, {11, "519-688-5168"}, {88, 75, 78}
};

}

1 个答案:

答案 0 :(得分:0)

[0]8664.6194::‎2019‎-‎04‎-‎03 21:18:34.125 [MSNT_SystemTrace]
[0]8664.6194::‎2019‎-‎04‎-‎03 21:18:34.125 [MSNT_SystemTrace]
[0]0000.0000::‎2019‎-‎04‎-‎03 21:18:34.125 []***
[0]0000.0000::‎2019‎-‎04‎-‎03 21:18:34.125 []***
[0]0000.0000::‎2019‎-‎04‎-‎03 21:18:34.125 []***
[0]0000.0000::‎2019‎-‎04‎-‎03 21:18:34.125 []***
[0]0000.0000::‎2019‎-‎04‎-‎03 21:18:34.125 []***
[0]0000.0000::‎2019‎-‎04‎-‎03 21:18:34.125 []***
[0]0000.0000::‎2019‎-‎04‎-‎03 21:18:34.125 []***
[0]0000.0000::‎2019‎-‎04‎-‎03 21:18:34.125 []***
[0]0000.0000::‎2019‎-‎04‎-‎03 21:18:34.125 []***
[0]0000.0000::‎2019‎-‎04‎-‎03 21:18:34.125 []***
[0]0000.0000::‎2019‎-‎04‎-‎03 21:18:34.125 []***
如果定义和初始化单个 {"Bob", "Smith"}, {11, "519-688-5168"}, {88, 75, 78} 对象,则使用

Student

但是,您正在尝试初始化Student student = { {"Bob", "Smith"}, {11, "519-688-5168"}, {88, 75, 78} }; 对象的 array ,因此每个元素都必须放在花括号内:

Student

1:Student class_list[MAX_CLASS_SIZE] = { { {"Bob", "Smith"}, {11, "519-688-5168"}, {88, 75, 78} } // 1 2 3 4 }; 对象初始化程序。
2:Student对象初始化程序。
3:Name对象初始化程序。
4:Info对象初始化程序。

话虽如此,您应该避免使用C字符串。请改用Mark

std::string