我已经查看了此处和其他网站的各种论坛帖子,但是我没有看到任何涉及类似问题的内容。我遇到的问题是:当数组元素为6或更低时,studentInfo数组将无法正常运行。 我只想拥有一个大小为23 的数组,但代码会返回:
static char people[ROWS][COLS][NAME];
我在下面提供的代码是我实际代码的简化版本。我必须在我的程序中使用一个数组(没有某些人可能想要的向量),因为它是我的任务的一部分。我对c ++还是一个新手,所以对任何答案的一个很好的解释都很棒。谢谢你的帮助!
bash: line 12: 51068 Segmentation fault $file.o $args
答案 0 :(得分:1)
代码具有未定义的行为,因为成员函数getStudentInfo
虽然以非void返回类型声明,但不返回任何内容。
声明它就像
void getStudentInfo() const {
for (int i = 0; i < 23; ++i) {
cout << studentInfo[i] << " ";
}
}
最好不要使用魔术数字。您可以在类中添加静态常量数据成员,如此
class StudentGrades {
private:
static const size_t N = 23;
string studentInfo[N];
....
并在任何需要的地方使用它。例如
void getStudentInfo() const {
for (size_t i = 0; i < N; ++i) {
cout << studentInfo[i] << " ";
}
}