Problem z listą jednokierunkową

0

Witam, mam problem.
Podczas wypisywania elementów listy pokazuje się okienko "Program przestał działać...", czyli wysypuje się.
Program ma za zadanie wczytywanie słów z pliku do listy i wypisanie listy na ekranie.
Format pliku plik.txt:
pies 3 dog cat cat
kura 2 chicken bird
samochod 2 car truck

lista:

struct element{
    char polskie[50];
    int ilosc_tlumaczen;
    char angielskie[T][50];
    struct element *nast;
};
typedef struct element ELEMENT;
typedef ELEMENT *ADRES;

wczytywanie z pliku:

ADRES pierwszy=NULL, ostatni=NULL, pomocniczy;
    while(fscanf(plik,"%s",pom)!=EOF){
            pomocniczy=(ADRES)malloc(sizeof(ELEMENT));
           strcpy(pomocniczy->polskie,pom);

            fscanf(plik,"%d",&pomocniczy->ilosc_tlumaczen);
            for(i=0;i<pomocniczy->ilosc_tlumaczen;i++){
                fscanf(plik,"%s",pomocniczy->angielskie[i]);

                }
        if(pierwszy==NULL){
            pierwszy=pomocniczy;ostatni=pomocniczy;
        }else{
        ostatni->nast=pomocniczy;
        ostatni=pomocniczy;
        }
            }//koniec wczytywania

wypisywanie:

while(pierwszy!=NULL){
        printf("\n%s\n",pierwszy->polskie);
        for(i=0;i<pierwszy->ilosc_tlumaczen;i++){
            printf("%s\t",pierwszy->angielskie[i]);
        }
        pierwszy=pierwszy->nast;
    }

Program ma za zadanie wczytać całą linijkę do jednego elementu listy. pierwsze słowo w linijce idzie do tablicy "polskie", dalej liczba określa ile kompilator ma spodziewać się słów w języku angielskim, po czym wpisuje te słowa do oddzielnych wierszy tablicy 2d "angielskie". Niestety coś nie działa. Po uruchomieniu program się wysypuje. Proszę o pomoc.

0

Trochę nieczytelny i słabo sformatowany kod, postaraj się nad tym popracować.

pomocniczy->nast nie jest ustawiany na NULL, więc nie masz końca listy. Ustawiaj ten wskaźnik na zero lub zeruj całą strukturę memset() albo alokuj używając calloc().

0

Wielkie dzięki. problemem było że ostarni->nast nie byl nullem.

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