1
我正在嘗試編寫一個程序來創建指向對象的指針矢量,然後對其進行解引用以打印它所保存的值。 但由於seg故障,程序正在中止。段錯誤in for循環遍歷指向對象的指針
分段故障位於display()
函數的行cout << p1->rno << endl;
處。
請幫我找出問題所在。
#include<iostream>
#include<vector>
using namespace std;
class student
{
public:
int rno;
char name[25];
student(int r,char *p):rno(r)
{
//cout << "Con No is" << ++cnt << endl;
strcpy(name,p);
}
static int cnt;
};
void display(vector<student *> &vec)
{
vector<student *> :: iterator p;
student *p1;
for(p = vec.begin();p != vec.end();++p);
{
p1 = *p;
cout << p1->rno << endl;
}
}
int student :: cnt = 0;
int main()
{
vector<student *> vec;
student *p;
int i = 0;
while(i < 10)
{
p = new student(i,"Ganesh");
vec.push_back(p);
i++;
}
display(vec);
system("PAUSE 100");
return 0;
}
您是否嘗試過調試一下?任何想法看似失敗的部分? –
聲明「cout << p1-> rno << endl」;正在導致故障。 – user1758616
@ user175816這是相關信息 - 請編輯您的問題並添加此確切的詳細信息。 –