2016-04-11 22 views
-1

Bağlantılı listeler ve yapılarla çalışmaya başladım ve kodlamaya çok yeni başladım. Aşağıdaki kod, çağrıldığında köpeklerin yapısına yeni bir köpek ekleyen bir işlevdir. İlk köpeğe girerken bölümleme hatası almıyorum ama sadece başka bir köpeğe girdiğimde bu sorunu yaşıyorum. Bunun nasıl düzeltileceğinden emin değilim, bu yüzden herhangi bir yardım çok takdir edilecektir.Bölümleme Hatası

if(list == NULL){ 
      list = new_node; 
      return list; 
    } 

    while(p->next != NULL){ 
      p = p->next; 
    } 
    p->next = new_node; 
    return list; 
} 

cevap

1
sadece altta while döngü girmeden önce p ilklendirmelisiniz

: işlevinde önce, alakasız bir kayda göre

p = list; 
while (p->next != NULL) { 
    p = p->next; 
} 

, yinelenen bir hasta numarası için kontrol ederken, muhtemelen istiyorum break;'u return list; olarak değiştirmek için Aksi takdirde döngüden çıkacak ve listeye yeni bir düğüm eklemeye devam edecektir.

+0

Şimdi mükemmel çalışıyor! Yardım ettiğin için teşekkür ederim! – YellowBird

0

Burada p sıfırlanması gerekir. Bu noktada, boştur ve onu iptal edersiniz.

p = list; // add this 

while(p->next != NULL) 
{ 
    p = p->next; 
} 
p->next = new_node; 
return list; 
İlgili konular