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.