在指向对象的指针向量上的for循环中的段错误
Segfault in a for loop over a vector of pointer to objects
我正试图编写一个程序来创建一个指向对象的指针向量,然后对其解引用以打印它所持有的值。但是程序由于段错误而中止。
在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;
}
你打错字了
for(p = vec.begin( );p != vec.end( );++p);
// ^
你的for循环有空体。
注:我建议你打开警告,它可以帮助你避免这样的打字错误。例如,clang抛出以下警告:
警告:for循环有空体[-Wempty-body]
相关文章:
- 编写代码时C++出现错误:错误 1 错误 C2601:'circle':本地函数定义是非法的
- 如何摆脱C ++中的分段错误错误?
- Clang 8 带有静态 constexpr 和数组的链接器错误 - 错误是什么以及如何解决它?
- 为什么每当我尝试运行此链接列表删除功能时都会收到分段错误错误?
- 如何解决分段错误错误C++
- 作为参数模板的模板类:MSVC 错误 - 错误 C2977:模板参数过多 (C++98)
- 安卓工作室 |CPP 文件错误错误: 位图库中对"AndroidBitmap_unlockPixels"的未定义引用
- 卷曲给出分段错误错误
- 无法访问 Arduino 结构字段。错误"退出状态 1。xxxx 不命名类型"
- 错误错误 C2872:"布尔值":kinect.h 的不明确符号
- C++打印模板容器错误(错误:"运算符<<"的不明确重载)理解?
- 结构的分割错误错误
- 为什么此代码返回分段错误错误?
- 错误错误:无法编译内置功能
- 分段错误错误C++
- C++ 1Z 错误:错误:演绎指南中声明中的显式限定
- 使用对数据类型的向量的哈希表中的分段错误错误
- 为什么此代码会导致分段错误错误
- JNA结构字段值错误
- C++段故障错误