Witam.
Moim zadaniem jest napisanie programu do przechowywania tytułów w bibliotece za pomocą listy 2-kierunkowej.
Mam problem z odwołaniem się do elementów struktury "data" zalokowanej w strukturze "Book".
struct Book{
bool stan;
int id;
char title[30];
char aut_imie[20];
char aut_nazw[20];
char kategoria[20];
struct data{
int rok;
int miesiac;
int dzien;
};
char poz_imie[20];
char poz_nazw[20];
struct Book *next;
struct Book *prev;
};
struct Book *head=NULL; //poczatek listy
struct Book *tmp=NULL; //poprzednio dodany
struct Book *element=NULL; //aktualnie dodawany
struct Book *cos; //element roboczy
struct Book *push(struct Book *head, char* aut_i, char* aut_n, char* tit, char* kat){
if(head==NULL) {
head=(struct Book*)malloc(sizeof(struct Book));
tmp=(struct Book*)malloc(sizeof(struct Book));
(*head).id=1000;
(*head).stan=true;
strcpy((*head).title, tit);
strcpy((*head).aut_imie, aut_i);
strcpy((*head).aut_nazw, aut_n);
strcpy((*head).kategoria, kat);
(*head).next=NULL;
(*head).prev=NULL;
tmp=head;
} else {
element=(struct Book*)malloc(sizeof(struct Book));
(*element).id=(*tmp).id + 1;
(*element).stan=true;
strcpy((*element).title, tit);
strcpy((*element).aut_imie, aut_i);
strcpy((*element).aut_nazw, aut_n);
strcpy((*element).kategoria, kat);
(*element).next=NULL;
(*tmp).next=element;
(*element).prev=tmp;
tmp=element;
}
return head;
}
Wiem, że do elementów Book odwołuje się poprzez przypisanie wskaźnika *cos do "koralika" listy i wpisanie cos->element, jednak nie mogę sobie poradzić z odwołaniem się do elementów data. Próbowałem dostać się tam poprzez cos->data.element, ale to jednak był głupi pomysł :)