下面是我在vs中写的代码,没有报错,但是出现了警告;
警告如下:
严重性 代码 说明 项目 文件 行 禁止显示状态
警告 C26495 未初始化变量 student::score。始终初始化成员变量(type.6)。
#include <iostream>
#include <string>
#include <ctime>
using namespace std;
struct student {
string name;
int score;
};
struct teacher {
string name;
struct student sArr[5];
};
void allocateSpace(teacher tArr[],int length);
void printInfor(teacher tArr[],int length);
int main()
{
srand((unsigned int)time(NULL));
teacher tArr[3];
int length = sizeof(tArr) / sizeof(tArr[0]);
allocateSpace(tArr,length);
printInfor(tArr,length);
system("pause");
return 0;
}
void allocateSpace(teacher tArr[], int length) {
string nameSeed = "ABCDEF";
for (int i = 0; i < length; i++) {
tArr[i].name = "teacher_";
tArr[i].name += nameSeed[i];
for (int j = 0; j < 5; j++) {
int random = rand() % 61 + 40;
tArr[i].sArr[j].name = "student_";
tArr[i].sArr[j].name += nameSeed[j];
tArr[i].sArr[j].score = random;
}
}
}
void printInfor(teacher tArr[], int length) {
for (int i = 0; i < length; i++) {
cout << "\t" << tArr[i].name << endl;
for (int j = 0; j < 5; j++) {
cout << "学生姓名:" << tArr[i].sArr[j].name
<< " 分数:" << tArr[i].sArr[j].score << endl;
}
}
}
希望各位能一起交流,帮我搞明白这个我警告是怎么来的;
最后谢谢大家!
没有对你的变量进行初始化。
好像无关紧要。可以给个0
说实话,没看出来为啥报这个警告。这种警告一般是变量在未初始化的情况下,也没有作为左值的情况下,就作为右值使用,系统会给出警告,提示变量还没有被赋予初始值,可能会有问题。但整段代码并未发现这种情况