2017-08-12 6 views
-5

私は完全なリンクされたリストを印刷するための関数を書く必要があるこの質問があります。このエラーが発生する理由とその修正方法を教えてください。リンクリストを印刷する次のスニペットで、私のC++コードがセグメンテーションフォルトを表示するのはなぜですか?

/* 
     Print elements of a linked list on console 
     head pointer input could be NULL as well for empty list 
     Node is defined as 
     struct Node 
    { 
     int data; 
     struct Node *next; 
    } 
    */ 
    void Print(Node *head) 
    { 
    cout<<"test"; 
    while(head->next!=NULL) 
    { 

     cout<<(head->data)<<endl; 
     head=head->next; 

    } 

    } 

+1

リストが空の場合 –

+0

はNULLを印刷に渡し、存在しないNULLから次に取得しようとしますか? – Hakes

+2

あなたのdebggerは何を言っていますか?問題の原因を見つけるには、このコードを慎重に実行する必要があります。あなたがこのステップを逃したので、あなたは下投票されています。 – tadman

答えて

0

パラメータヘッドでNULLをチェックしないでください。 Print(NULL)を呼び出すと、nullpointerにアクセスしようとしており、セグメンテーションフォルトが発生する可能性があります。

void Print(Node *head) 
{ 
    if(head == nullptr) return; 

    cout<<"test"; 
    while(head->next!=NULL) 
    { 
     cout<<(head->data)<<endl; 
     head=head->next; 
    } 
} 
関連する問題