linux vector push_back 出现段错误!

喵了个咪78 2014-12-24 01:54:15

具体问题是这样的:
本人将windows上的代码移植到linux上,但是遇到vector push_back 的时候出问题 ,vector里面装的指针,指针的类型是自定义的类 ,实际push_back 的时候是将自定义类的子类push进去!但是会出问题,还请各位有经验的大神们给指点指点!

HELP HELP
...全文
742 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangyunzhao 2014-12-25
  • 打赏
  • 举报
回复
1、贴代码,能不能先格式化一下啊,csdn有这个功能的,不然看着眼花。 2、既然都是移植到linux,能不能不用BOOL,看着好奇怪。 3、代码没有看出问题,你确定是push_back出的问题?用gdb跟踪一下呢,或者看看core文件。push_back一个指针,怎么会有问题,奇怪
赵4老师 2014-12-24
  • 打赏
  • 举报
回复
进程意外退出会在当前目录下产生‘core’文件或形如‘core.数字’的文件比如‘core.1234’ 使用命令 gdb 运行程序名 core或core.数字 进入gdb然后使用bt命令 可以查看进程意外退出前函数调用的堆栈,内容为从上到下列出对应从里层到外层的函数调用历史。 如果进程意外退出不产生core文件,参考“ulimit -c core文件最大块大小”命令
喵了个咪78 2014-12-24
  • 打赏
  • 举报
回复
1.下面的是一个中间的类的声明clss COCRComposite class COCRComposite : public COCRNode { public: COCRComposite(); virtual ~COCRComposite(); int GetSize(); virtual COCRNode* GetFirstChild(); virtual COCRNode* GetLastChild(); virtual BOOL DrawImage(CDC *pDC, double fScale); virtual BOOL Add(COCRNode * pNode); virtual BOOL Insert(COCRNode * pNode, int nPos); virtual BOOL RemoveAllElements(); virtual BOOL RemoveElement(int nPos); virtual BOOL RemoveElements(int nBeg, int nEnd); vector<COCRNode*> m_Elements; virtual void CloneElements(COCRNode* pDestNode); virtual void Accept(CNodeVisitor* pVisitor); COCRNode* GetNodeByPos(int nPos); protected: friend COCREngine; friend CEngineTHOCR; }; 2.接下来是虚函数virtual BOOL Add(COCRNode * pNode)的实现 BOOL COCRComposite::Add(COCRNode * pNode) { if(pNode == NULL) return FALSE; pNode->SetParent(this); m_Elements.push_back(pNode); return TRUE; } 3. 接下来是两个子类class COCRNodeText : public COCRComposite、class COCRNodeRow : public COCRComposite 主要是说明几个类之间的关系 4、下面的调用部分 COCRNodeText* pText = static_cast<COCRNodeText*>(lpUserParam); COCRNodeRow* pRow = dynamic_cast<COCRNodeRow*>(pFactory->CreateNode(COCRNode::NODETYPE_ROW)); pText->Add(pRow); 问题出在 pText->Add(pRow)里面的 m_Elements.push_back(pNode) 这,找了很多资料,但是没有搞明白具体是什么原因,还麻烦帮忙看看! 谢谢
ayrb13 2014-12-24
  • 打赏
  • 举报
回复
talk is cheap,show me the code
ri_aje 2014-12-24
  • 打赏
  • 举报
回复
代码..............

64,645

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧