Arrays in C are 0
-based, that is the first element is array[0]
the second is array[1]
and so on.
So those lines of insertMovie()
:
if(dvds->numdvds>=(*n))
{
dvds->numdvds++;
dvds->dvd=realloc(dvds->dvd,(dvds->numdvds)*sizeof(dvdtype));
if(dvds->dvd==NULL){
printf("not enough memory\n");
exit(1);
}
printf(" realloc succesful,size now is :%d \n",dvds->numdvds);
dvds->dvd[dvds->numdvds].customerID=-1;
dvds->dvd[dvds->numdvds].daysowned=-1;
printf("give code and name of movie \n");
scanf("%d\n",&code);
dvds->dvd[dvds->numdvds].dvdcode=code;
gets(dvds->dvd[dvds->numdvds].title);
shall be:
if(dvds->numdvds>=(*n))
{
dvds->dvd=realloc(dvds->dvd,(dvds->numdvds + 1)*sizeof(dvdtype));
if(dvds->dvd==NULL){
printf("not enough memory\n");
exit(1);
}
printf(" realloc succesful,size now is :%d \n",dvds->numdvds + 1);
dvds->dvd[dvds->numdvds].customerID=-1;
dvds->dvd[dvds->numdvds].daysowned=-1;
printf("give code and name of movie \n");
scanf("%d\n",&code);
dvds->dvd[dvds->numdvds].dvdcode=code;
gets(dvds->dvd[dvds->numdvds].title);
dvds->numdvds++;