当前位置: 代码迷 >> 综合 >> c++中的段错误(segment fault)
  详细解决方案

c++中的段错误(segment fault)

热度:46   发布时间:2023-12-07 20:52:46.0

段错误一般发生在递归导致的栈溢出或这数组溢出,还有就是if语句中可能出错,比如一个链表结构:

struct ListNode {int val;struct ListNode *next;ListNode(int x) :val(x), next(NULL) {}
};
在链表指针指向为空的时候,它就不可能存在val值,这时候,如果你的if中存在p->val就会出现段错误。

且看下面代码:

ListNode* deleteDuplication(ListNode* pHead)
{ListNode *pFront=NULL, *pBack=pHead, *pMiddle = NULL;while(pBack!=NULL){pMiddle = pBack;pBack=pBack->next;if(pBack!=NULL && pBack->val==pMiddle->val){while(pBack->val==pMiddle->val){ListNode *pTemp;pTemp = pBack;pBack = pBack->next;delete pTemp;}delete pMiddle;pMiddle = NULL;if(pFront!=NULL)
  相关解决方案