Witam, nie mogę slokalizować co jest nie tak w kodzie. Napisałem funkcje dodawania nowymch elementow do listy(elementy to filmy zapisane w strukturze), gdy chcemy wyjsc z programu on zaisuje obecnie znajdujace się w liscie elementy. Do funkcji która zapisuje wysyłam wskaznik na pierwszy element. Później wskaźnik zmienia się na pole next ktore przechowuje wskaznik kolejnego elementu listy.
Struktura:
struct movie{
struct movie *myAddress;
int id;
char movieName[MAX_MOVIE_NAME_LENGHT];
short int yearOfProduction;
char directorName[MAX_DIRECTOR_NAME];
char typeOfMovie[MAX_MOVIE_NAME_LENGHT];
short int amountOfCopies;
short int amountOfRented;
struct movie *next;
struct movie *prev;
};
Funkcja zapisu:
void saveDataToFile(struct movie *node)
{
FILE *file;
for(int i=0; i<amountOfData; i++)
{
if((file = fopen("movies.dat","ab")) == NULL)
{
fputs("Nie mozna otworzyc pliku i zapisac danych w pliku movies.dat \n",stderr);
exit(1);
}
fwrite(node,sizeof(struct movie),1,file);
printf("pointerZapisu: %p \n",node);
//if(node != NULL)
node = node->next;
printf("pointerNext: %p \n",node);
}
fclose(file);
printf("Zapisano.");
}
Funkcja zapisuje elementy w pliku jednak ostatni element listy zawsze jest na pierwszej pozycji, reszta elementów zapisuje się poprawnie nie mam pojęcia co jest grane :O proszę o pomoc i dzięki :D