#include<iostream>
using namespace std;
struct stu
{
string sname;
int score;
};
struct teacher
{
string tname;
struct stu sarray[5];
};
void allocatespace(struct teacher tarray[],int len)
{
string nameseed = "ABCDE";
for (int i = 0;i < len;i++)
{
tarray[i].tname = "teacher_";
tarray[i].tname += nameseed[i];
for (int j = 0;j < 5;i++)
{
srand((int)time(0));
tarray[i].sarray[j].sname = "student_";
tarray[i].sarray[j].sname += nameseed[j];
tarray[i].sarray[j].score = rand() % 100;
}
}
}
void print(struct teacher tarray[], int len)
{
for (int i = 0;i < len;i++)
{
cout <<"第" << i + 1 << "老师的姓名:" << tarray[i].tname << endl;
for (int j = 0;j < len;j++)
{
cout << "他的第" << j + 1 << "个学生的姓名是:" << tarray[i].sarray[j].sname << "他的成绩是:" << tarray[i].sarray[j].score << endl;
}
}
}
int main()
{
struct teacher tarray[3];
int len = sizeof(tarray) / sizeof(tarray[0]);
allocatespace(tarray, len);
print(tarray, len);
system("pause");
return 0;
}
0x00007FFECFC71400 (vcruntime140d.dll)处(位于 Project1.exe 中)引发的异常: 0xC0000005: 读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突。
总是显示在 struct teacher tarray[3]; 这一行出问题
我的解答思路和尝试过的方法
根据网上用了逐行运行确定出错位置并将结构体初始化,还是没有作用
我想要达到的结果
修改后正常运行