Witam! Mam problem z listą jednokierunkową. Podczas jej tworzenia wypisuję sobie dla pewności jej elementy. Wszystko się zgadza. Numeruje tak jak sobie tego życzę. Następnie jednak chcę wypisać wszystko jeszcze raz. I tu się zaczyna kłopot. Przy:
while(element!=NULL)
{
printf("%d\n",element->Numer_Indeksu);
element=element->next;
}
program wpada w nieskończoną pętlę i nie wypisuje wcale wyników, jakich oczekiwałem tylko jakieś ogromne liczby(stawiam na jakieś adresy, które nie wiem jak się tam znalazły).
Oto cały kod:
#include <stdio.h>
#include <stdlib.h>
typedef struct pt number;
struct pt
{
int Numer_Indeksu;
struct number *next; /* wskaźnik do następnej struktury */
};
int main()
{
int x=0; //Zmienna pomocnicza do pętli
number *root; //Początek listy
number *element; //Element listy
element=(number *)malloc(sizeof(number)); //Przydzielenie pamięci pierwszemu elementowi
root = element; //root - pierwszy element listy - zawsze
while(x!=10)
{
element->Numer_Indeksu = x; //Przypisanie Elementowi Numeru Indeksu
printf("%d\n", element->Numer_Indeksu);
element = element->next; //Przejście na następny element
element=(number *)malloc(sizeof(number)); //Przydzielenie pamięci nowemu elementowi
++x;
}
element->next = NULL; //Ostatni element wskazuje na NULL
element = root; //Przeglądaj od początku
while(element!=NULL)
{
printf("%d\n",element->Numer_Indeksu);
element=element->next;
}
return 0;
}
Ładnie proszę o pomoc.