gpt4 book ai didi

c++ - 在指向对象的指针 vector 上的 for 循环中的段错误

转载 作者:行者123 更新时间:2023-11-30 00:53:37 24 4
gpt4 key购买 nike

我正在尝试编写一个程序来创建一个指向对象的指针 vector ,然后取消引用它以打印它所持有的值。但是程序由于段错误而中止。

段错误在cout << p1->rno << endl;行在 display( )功能。

请帮我找出问题

#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;
}

最佳答案

打错了

for(p = vec.begin( );p != vec.end( );++p);
// ^

您的for 循环 有空体。

附言我建议您打开警告,它可以帮助您避免此类拼写错误。例如,clang 会抛出以下警告:

warning: for loop has empty body [-Wempty-body]

关于c++ - 在指向对象的指针 vector 上的 for 循环中的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15989798/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com