求大神帮小弟我看看小弟我这个程序哪出错了

求大神帮我看看我这个程序哪出错了
#include<iostream>
using namespace std;
class Student{
public:
Student();
Student(long,int);
void display();
friend void max(Student *p);
private:
long code;
int score;
};

Student::Student(){}
Student::Student(long co,int s)
{
co=code;
s=score;
}

void Student::display()
{
cout<<code<<"\t"<<score;
}

void max(Student *p)
{
int i,max=0;
for(i=0;i<5;i++)
if((p+i)->score>max)
max=(p+i)->score;
cout<<"最好成绩:"<<endl;
cout<<"学号"<<"\t"<<"成绩"<<endl;
(p+i)->display();
}
int main()
{
int i;
Student *p;
Student Stu[5]={
Student(1001,90),
Student(1002,80),
Student(1003,95),
Student(1004,85),
Student(1005,70),
};
cout<<"输出:"<<endl;
cout<<"学号"<<"\t"<<"成绩"<<endl;
for(i=0;i<5;i++)
{
Stu[i].display();
cout<<endl;
}
p=Stu;
max(p);
cout << endl;
return 0;
}


求大神帮小弟我看看小弟我这个程序哪出错了
------解决思路----------------------
Student::Student(){}
Student::Student(long co,int s)
{
co=code;
s=score;
}
++++++++++++++++++++++++++++++++
应该这样写:
Student::Student(){}
Student::Student(long co,int s)
{
core=co;
score=s;
}

------解决思路----------------------
cout<<"学号"<<"\t"<<"成绩"<<endl;
(p+i)->display();
+++++++++++++++++++++++++++++++++++
不要用(p+i)->display();
改成
cout<<max<<endl;
这个时候,p+i已经指飞了。
兄弟,新手吧。