#include <iostream>
#include<string.h>
using namespace std;
struct student
{
char *num;
int score;
};
struct student *max(struct student *s[],int n){
int i,imax=0;
struct student *head;
for(i=0;i<n;i++){
if(s[i]->score>s[imax]->score)
imax=i;
}
head=s[imax];
return head;
}
int main()
{
struct student *s[100],*p;
int i;
for(i=0;i<100;i++){
s[i]->num=new char[10];
cin>>*(s[i]->num);
cin>>s[i]->score;
}
p=max(s,100);
cout<<"最高分学生信息"<<endl;
cout<<"学号"<<*(p->num)<<endl;
cout<<"分数"<<p->score;
system ("pause");
return 0;
}
这个代码总是显示如图所示的问题,求一个解释
在这一行前面加上
s[i] = new student;
未分配内存空间,都是空指针啊,使用指针就要new student,或者用数组,student s[100]