2016-05-22 2 views
0

リンクリストは考えましたが、セグメント化エラーがあります。 しかし、このコードがメモリリークを持って、なぜ私はちょうどPTR =次回、リンクリストノードのセグメント化エラー

コードブロックが言ってみました...、

を知りません。 < - この部分にはセグメント化エラーがあります。

if(head == NULL) 
     { 
      head = new Nodes; 
      head->r_data = data1; 
      head->u_data = data2; 
      head->r_node = NULL; 
      head->u_node = NULL; 
     } 
     else 
     { 
      Nodes *ptr; 
      ptr = head; 
      Nodes *next; 
      next = head->r_node; 
      while(ptr != NULL) 
      { 
       if(ptr->r_data == data1) 
       { 
        next = ptr->u_node; 
        while(ptr != NULL) 
        { 
         if(ptr->u_data < data2) 
         { 
          ptr = next; 
          next = ptr->u_node; 
         } 
         else 
         { 
          break; 
         } 
        } 
        break; 
       } 
       else if(ptr->r_data < data1) 
       { 
        ptr = next; 
        next = ptr->r_node; 
       } 
      } 
      ptr->r_data = data1; 
      ptr->u_data = data2; 
      ptr->r_node = NULL; 
      ptr->u_node = NULL; 
     } 
+1

これはCのようです。 –

+0

言語はC++ – withkikoz

答えて

0

問題は、存在しないメモリの場所にアクセスしようとしている可能性があります。このような状況では、最初にアクセスしたいメモリの場所が最初にアクセス可能かどうかを確認することが常に役立ちます。あなたの場合、次のようなものを追加する場合は、

if(ptr->r_data == data1 && ptr->u_node!=NULL) 
    { 
    next = ptr->u_node; 
    ...... 

セグメンテーションの問題に陥ることがありません。

関連する問題