Witam piszę projekt w którym muszę połączyć ze sobą studentów oraz wypożyczone przez nich książki. Chcę napisać funkcję która będzie tworzyła listę oraz zapisywała do niej dane. Jednakże nie wiem jak utworzyć wskaźniki aby operować po liście
Zamieszczam Fragment Kodu zawierający tworzoną funkcję oraz struktury.
typedef struct Book{ /// Struktura przechowujaca dane ksiazek
int id;
char author[15];
char title[20];
char year[4];
struct BOOK *next;
}BOOK;
typedef struct Student{ ///Struktura przechowujaca dane studentów
int id;
char name[10];
char surname[15];
char email[20];
char phone_num[9];
BOOK *assigned;
}STUDENT;
.......
void assign_book(STUDENT *student_arr, BOOK *root){ /// PRZYPISANIE KSIAZEK STUDENTOM
FILE *a = fopen("a_test.txt","w");
BOOK *current = root;
int i,s_select,b_select,cell = 0;
printf("\nASSIGN BOOKS:");
//printf("\nPodaj id studenta:");
//scanf("%d",&s_select);
for(i=0;i<4;i++){
// if(s_select == student_arr->id){
current = root;
printf("\n%s %s ma przeczytac:",student_arr->name,student_arr->surname);
do{ ///WPISYWANIE KSIAZEK DLA 1 STUDENTA AZ DO WCISNIECIA 0
scanf("%d",&b_select);
while(current != NULL){ ///ITERACJA PO LISCIE KSIAZEK
if(b_select == current->id){ ///POCZĄTEK LISTY WYPOZYCZONYCH KSIAZEK
student_arr->assigned = (BOOK*)malloc(sizeof(BOOK)); /**<======= W TEJ LINIJCE CHCIAŁBYM ZAMIENIĆ student_arr->assigned na *wskaźnik np. current_assigned_book
**/
strcpy(student_arr->assigned->author,current->author);
strcpy(student_arr->assigned->title,current->author);
strcpy(student_arr->assigned->year,current->author);
student_arr->assigned->id = current->id;
printf("sUCCES\n");
break;
}
else{
current = current->next;
}
}
}while(b_select != 0 );
//break;
//}
//else{
student_arr++;
}
To jest to co do tej pory udało mi się napisać.
W tym momencie program tylko odczytuje wartość przechodzi do następnego studenta i zastępuje poprzednio wprowadzoną książkę, a chciałbym żeby dopóki
nie wprowadzi się 0 funkcja dodawała książkę do listy jednokierunkowej która zawiera książki danego studenta i po wprowadzeniu 0 przechodziła do kolejnego studenta. Tylko nie wiem jak zorganizować wskaźniki aby taką listę utworzyć, jeżeli ktoś mógłby mi pomóc byłbym wdzięczny.
W kodzie zaznaczyłem o co mniej więcej chodzi oraz potrzebowałbym wskaźnika wskazującego na pierwszy element z listy oraz wskaźnika pomocniczego.
Nie jestem pewien czy każdy zrozumie o co mi chodzi, jeśli są jakieś wątpliwości to postaram się dokładniej wyjaśnić