Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 代码正在创建分段错误_C++_Linked List_Segmentation Fault - Fatal编程技术网

C++ 代码正在创建分段错误

C++ 代码正在创建分段错误,c++,linked-list,segmentation-fault,C++,Linked List,Segmentation Fault,为什么这段代码会产生分段错误?这是hackerrank的练习题,仅供参考。它说编译器消息是分段错误。听起来您可能需要学习如何使用调试器逐步完成代码。有了一个好的调试器,您可以逐行执行您的程序,并查看它偏离预期的地方。这是一个必要的工具,如果你要做任何编程。进一步阅读:在一个无关的注释中,从列表中删除的节点会发生什么情况?你把它们从列表中取消了链接,然后呢?搜索内存泄漏。请在if条件(ptr->next)->数据之前测试ptr->next的值。谢谢,特别是J.Piquard。我只是在while循环

为什么这段代码会产生分段错误?这是hackerrank的练习题,仅供参考。它说编译器消息是分段错误。

听起来您可能需要学习如何使用调试器逐步完成代码。有了一个好的调试器,您可以逐行执行您的程序,并查看它偏离预期的地方。这是一个必要的工具,如果你要做任何编程。进一步阅读:在一个无关的注释中,从列表中删除的节点会发生什么情况?你把它们从列表中取消了链接,然后呢?搜索内存泄漏。请在if条件
(ptr->next)->数据之前测试
ptr->next
的值。谢谢,特别是J.Piquard。我只是在while循环中用ptr->next替换了ptr,它成功了!顺便说一句,声明变量时不需要使用关键字
struct
。在C++中,<代码>结构> <代码>是一种类型。
/*
  Remove all duplicate elements from a sorted linked list
  Node is defined as 
  struct Node
  {
     int data;
     struct Node *next;
  }
*/
Node* RemoveDuplicates(Node *head)
{
  // This is a "method-only" submission. 
  // You only need to complete this method. 
   Node *ptr= head;
    if(ptr == NULL){
        return head;
    }
    while(ptr != NULL){
        if(ptr->data == (ptr->next)->data){
            ptr->next = (ptr->next)->next;
        }
        else{
            ptr = ptr->next;
        }
    }
    return head;
}