Student *p;
int main(){
read();
p[0].getname(); //这一行去掉正常运行,写在read()里也正常
delete[] p;
return 0;
}
int read(){
int n;
string str;
ifstream fin("k.txt");
fin>>n;
p=new Student[n];
for(int i=0;i
{
fin>>str>>p[i].number>>p[i].name;
for(int j=0;j
fin>>p[i].score[j];
}
fin.close();
return n;
}
这样会出现提示
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
如果在主函数里去掉 p[0].getname(); 就不会报错
把p[0].getname();写在read里也没有问题