Segmentation fault

0

Mozecie mi powiedziec co oznacza blad "Segmentation fault"? Uzywam kompilatora g++. Robilem sobie listy dwukierunkowe i blad jest(chyba) w dodawaniu kolejnego elementu do listy ale nie jestem pewien...

0

Jest to typowy blad pamieci !! Chcesz cos zrobic z obszarem pamieci ktory nie mozna wykorzystywac - zapisujesz do pamieci ktorej nie zaalokowales lub odnosisz sie do pamieci innego procesu - tzn ze cos zle robisz z ta lista :(

0

Ja juz sam nie wiem co jest zle... tu jest caly kod funkcji:

void LISTA::dorzuc(int x)
{
       ELEMENT *q = new ELEMENT;
       q->nastepny = NULL;
       q->poprzedni = NULL;
   
       if(glowa->nastepny == NULL)                  //sprawdza czy lista jest pusta
                glowa->nastepny = ogon = q;
       else {
                q->poprzedni = NULL;                
                ogon->nastepny = q;
                ogon = q;
        }
}
                

To wlasciwie cala funkcja.... co jest w tym zle ze podczas wykonywania jest bald Segmentation fault? Please odpowiedzcie bo to juz zaczyna denerwowac :-[

Aha ogon i glowa to poczatek i koniec listy. Structura taka sama jak q
{czyli ELEMENT}

0
void LISTA::dorzuc(int x)
{
       ELEMENT *q = new ELEMENT;
       q->nastepny = q->poprzedni = NULL;
       if (!glowa)  {
           glowa = ogon = q;  // gdy nie ma jeszcze nic w liscie
       } else
       if(glowa->nastepny == NULL)                  //sprawdza czy lista jest pusta - zle tutaj sprawdzasz czy jest jeden element na liscie
                glowa->nastepny = ogon = q;
                ogon->poprzedni = glowa;
       else {
                q->poprzedni = ogon;                
                ogon->nastepny = q;
                ogon = q;
        }
}

Teraz powinno byc OK - zalozylem ze ogon i glowa sa na poczatku NULL.

0

thx snaj... naprowadziles mnie :) [browar] po prostu nie zainicjowalem glowy i ogona nullem

1 użytkowników online, w tym zalogowanych: 0, gości: 1