Tak więc mam w C listę podwieszaną, jednak nie chce mi do niej dodawać elementów, a jako że jestem ślepy i początkujący to nie widzę żadnego większego błędu. Ostatnią funkcję dodałem do połowy bo jej dalsza część nie ma w tym momencie znaczenia.
typedef struct stolik
{
bool rezerwacja;
int numer;
int krzesla;
struct stolik*pNext;
struct data*kiedy;
}stolik_typ;
typedef struct data
{
int rok;
int miesiac;
int dzien;
int godzina;
struct data*pNext;
struct klient*kto;
znizka z;
}data_typ;
void push_back(stolik_typ **head, int number, FILE*fp)
{
if((*head)==NULL)
{
(*head) = (stolik_typ *)malloc(sizeof(stolik_typ));
(*head)->numer = number;
(*head)->pNext = NULL;
(*head)->kiedy = NULL;
fscanf(fp, "%d", &((*head)->krzesla));
}else
{
stolik_typ *current=(*head);
stolik_typ *new_element;
while (current->pNext != NULL)
{
current = current->pNext;
}
current->pNext = (stolik_typ *)malloc(sizeof(stolik_typ));
current->pNext->numer = number;
fscanf(fp, "%d", &(current->pNext->krzesla));
current->pNext->pNext = NULL;
current->pNext->kiedy = NULL;
}
}
void dodajDoPodwieszonej (data_typ**glowa)
{
if((*glowa)==NULL)
{
(*glowa) = (data_typ*)malloc(sizeof(data_typ));
}
else
{
data_typ*wsk = (*glowa);
data_typ*nowy;
while(wsk->pNext)
wsk = wsk->pNext;
nowy = wsk->pNext;
nowy = (data_typ*)malloc(sizeof(data_typ));
}
}
void wczytywanie(stolik_typ**glowa)
{
char plikwej[100], uwagi[100], nazw[20];
int numer, a, zmienna, rok, miesiac, dzien, nrtel, godzina;
char znak, nazwisko, spacja;
printf("Wczytaj dane z pliku\n");
printf("Podaj nazwe pliku z danymi i wcisnij ENTER\n");
scanf("%s", plikwej);
FILE*fp;
fp = fopen(plikwej, "r");
while ((fp = fopen(plikwej, "r")) == NULL)
{
printf("Nie udalo sie otworzyc pliku, sprawdz nazwe i sproboj ponownie\n");
scanf("%s", plikwej);
}
while(!feof(fp))
{
fscanf(fp, "%c", &znak);
printf("%c ", znak);
if (znak == 's')
{
fscanf(fp, "%d", &numer);
fscanf(fp, "%d", &a);
printf("STOLIK %d %d", numer, a);
push_back(glowa, numer, fp);
}
else if (znak == 'd')
{
stolik_typ*wsk = (*glowa);
while(wsk->pNext)
wsk = wsk->pNext;
data_typ*w = wsk->kiedy;
dodajDoPodwieszonej(&w);
}}}