2017-05-27 13 views
-4

単一リンクリストから値の最初の出現を削除しようとしています。しかし、これは呼び出されるたびにセグメンテーション違反を生成します。リンクリストからノードを削除するとSIGSEGVセグメント化エラーが発生する

typedef struct Node *node; 
struct Node 
{ 
    int data; 
    node next; 
}; 

node delete_node(int value, node l) { 
    if (l == NULL){ 
     return NULL; 
    } 
    if (l->data == value) { 
     node temp; 
     temp = l->next; 
     free(l); 
     return temp; 
    } 
    l->next = delete_node(value, l->next); 
    return l; 
} 
+2

これはコンパイルしないでください(セミコロンがありません)。 – dasblinkenlight

+0

リストの作成に関連する部分とこの呼び出し部分のコードを追加してください。 – BLUEPIXY

+3

あなたは価値とデータを混同していますか? – Gam

答えて

0

このサイトの名前を参照してください。 このコードは、スタックオーバーフローを引き起こす可能性があります。リンクリストが長い場合は です。

P.S.

if (l->_value_ == value) { 

は1->データかもしれませんか?

関連する問題