缓冲区溢出的问题?
来源:百度知道 编辑: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;
#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],当然会溢出了.