首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >除非添加了cout语句,否则代码将获得SIGSEGV,然后给出正确的结果

除非添加了cout语句,否则代码将获得SIGSEGV,然后给出正确的结果
EN

Stack Overflow用户
提问于 2021-02-07 13:28:46
回答 1查看 54关注 0票数 0

当我在C++中编码时,我得到了一个SIGSEGV错误。但是,当我在两者之间添加cout语句以知道哪里出错时,我的代码正在执行并给出正确的输出。

有没有人能建议如何克服这类问题?

代码(如果需要):(如果存在于链表中,则删除循环的代码):

代码语言:javascript
运行
复制
void removeLoop(Node* head)
{
    Node *slow=head,*fast=head;
    int u=0;
    while(slow !=NULL and fast->next!=NULL and fast!=NULL){
        slow=slow->next;
        fast=fast->next->next;
        if(slow==fast){
            u=1;
            break;
        }
    }
    if(u==1){
        int k=1;
        while(fast->next!=slow){
            fast=fast->next;
            k++;
        }
        slow=head;
        fast=head;
        for(int i=0;i<k;i++){
            fast=fast->next;
        }
        while(slow!=fast){
            slow=slow->next;
            fast=fast->next;
        }
        while(fast->next!=slow){
            fast=fast->next;
        }
        //cout<<fast->next->data<<endl;
        fast->next=NULL;
     }
}
EN

回答 1

Stack Overflow用户

发布于 2021-02-07 13:56:20

仔细看看这个:

代码语言:javascript
运行
复制
while(slow !=NULL and fast->next!=NULL and fast!=NULL){

现在想想如果slow != NULL and fast == NULL..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66084854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档