缓冲区溢出的问题?

来源:百度知道 编辑:UC知道 时间:2024/05/24 21:07:37
程序如下:
#define N 2
#include <iostream>
using namespace std;

class Student
{
public:
Student(void);
~Student(void);
int GetNum() { return num; }
void SetScore();
void PrintScore();
private:
int num;
float score[5];
};

Student::Student(void)
{
}

Student::~Student(void)
{
}

void Student::SetScore()
{
for(int i=0;i<5;i++)
cin>>score[i];
}

void Student::PrintScore()
{
for(int i=0;i<5;i++)
cout<<score[i]<<'\t';
cout<<endl;
}

int main()
{
Student student[N];
int i,j;
char course[5][10];
cout<<"请输入课程名称:";
for(j=0;j<5;j++)
cin>>course[j];

for(i=1;i<=N;i++)
{
cout<<"请输入第"<<i<<"位学生的成绩:"<<endl;

N=2,Student student[N],这时只有student[0]和student[1]两个数组元素,而
for(i=1;i<=N;i++)
{
cout<<"请输入第"<<i<<"位学生的成绩:"<<endl;
student[i].SetScore();
}
里i是从1开始算得就会出现student[2],当然会溢出了.