Dlaczego ta lista nie ma koĂąca?
| alexg | 19.10.2009 22:07:32 | |
![]() | 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; }
//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. | |
| Rekman | 24.10.2009 17:13:45 | |
![]() | 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! | |

