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
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