C++代码运行报错不知道哪里的问题
新建了一个函数,函数参数包括了结构体的数组。在函数体内给结构体整形变量赋值时程序运行正常,但是给字符串变量赋值时程序运行报错。程序代码:
#include<iostream> using namespace std; #include<string> //创建学生的结构体 struct student { //学生的姓名 string sname; //成绩 int score; }; //创建老师的结构体 struct teacher { //老师的姓名 string Tname; //定义学生的结构体数组 struct student stu[5]; }; //函数功能:给tea结构体数组赋值 void set(struct teacher tea[],int len) { string s = "ABCDE"; for (int i = 0; i < len; i++) { //tea[i].stu[i].sname = "aa"; //运行此行代码会报错 tea[i].stu[i].score = 100; //可以正常写值 //tea[i].Tname = "teacher_"; //tea[i].Tname += s[i]; //for (int j = 0; j < 5; j++) //{ // tea[i].stu[j].Sname = "student_"; // tea[i].stu[j].Sname += s[j]; // tea[i].stu[j].score = 60; //} } } int main() { /* 学校正在做毕业设计项目,每名老师带5位学生,总共3名老师,需求如下 设计学生和老师的结构体,其中老师的结构体中,有老师的姓名和存放5名学生的数组作为成员 ,学生的成员有姓名、考试分数,创建数组存放3名老师,通过函数给每个老师及所带的学生赋值, 最终打印出老师数据以及老师所带的学生数据。 */ //定义老师结构体数组 struct teacher teaArray[3]; //通过函数对老师数组赋值 int len = sizeof(teaArray) / sizeof(teaArray[0]); //计算数组的长度 set(teaArray,len); //打印输出结果 //for (int i = 0; i < 3; i++) //{ // // for (int j = 0; j < 5; j++) // { // cout << "第" << i + 1 << "个老师及学生的信息"; // cout << "老师的姓名: " << tea[i].name << endl; // cout << "老师的第" << j+1 << "个学生的姓名" << tea[i].stu[j].name << endl; // cout << "老师的第" << j + 1 << "个学生的成绩" << tea[i].stu[j].score << endl; // } //} system("pause"); return 0; }