Dlaczego ta lista nie ma koĂąca?




alexg19.10.2009 22:07:32
#
Dołączył: 19.10.2009

Witam serdecznie, Ostatnio mam problem z banalnym kawałkiem kodu:

[c]

include <stdio.h>

include <stdlib.h>

struct wektor{ //struktura dla listy struct wektor *nastepny; float dane; };

int main(void){

struct wektor *korzen, *ptr; float i=0.0;

korzen = (struct wektor*)malloc(sizeof(struct wektor)); ptr=korzen;

while(i<=10.0){ //generacja listy (zapelnienie liczbami 0.0 .. 10.0) ptr->dane = i; ptr->nastepny = (struct wektor*)malloc(sizeof(struct wektor)); ptr = ptr->nastepny; i+=1.0; }

  ptr=korzen;

  while(ptr){ //wyswietlenie listy
        printf(&quot;%f\n&quot;,ptr-&gt;dane);
        ptr = ptr-&gt;nastepny;
  }

//tutaj zwalniam pamiec return 0; }[/c]

Czy ktoś z Sznownych Forumowiczów mógłby mnie oświecić, dlaczego ta lista wyświetla się na ekranie w nieskończoność? Przecież w końcu kiedyś ptr powinno wynieść NULL, prawda?

Pozdrawiam, A.G.

Rekman24.10.2009 17:13:45
#
Dołączył: 05.04.2009

Po pierwszej pętli while dodaj poniższą instrukcję: ptr->nastepny = NULL; lub rezerwuj pamięć funkcją calloc() (deklaracja w pliku "alloc.h").

Rezerwowana funkcją malloc() pamięć nie jest zerowana!




Kontakt

Jeśli chcesz się z nami skontaktować napisz na adres: info(at)binboy.org lub odwiedź nasz profil na Facebooku!

O Nas

Serwis binboy.org to kopalnia wiedzy dla wszystkich z branży IT, w szczególności dla programistów i webmasterów. To duży zbiór kursów programowania, tutoriali, darmowych ebooków, setki kodów źródłowych itp.

Bądź w kontakcie

Panel użytkownika

Zaloguj się do panelu użytkownika.
Nie masz konta? Zarejestruj się!
Zapomniałeś hasła?