typedef struct __dvdInfo
{
 char ISBN[ISBN_LEN];
 char title[TITLE_LEN];
 int genre;

 int rentState;
} dvdInfo;


static dvdInfo * dvdList[MAX_CUSTOMER];
static int numOfdvd = 0;


void DVDRentinput(char * ID, int Day, char * ISBN)
{
 dvdInfo * pDVD = GetCusPtrByISBN(ISBN);
 
 AddRentList(ISBN, ID, Day);
 pDVD->rentState = RENTED;
 puts("대여가 완료되었습니다.");
 StoreDVD(); <---
 getchar();
}



void RentDVD()
{
 char DVDISBN[ISBN_LEN];
 char ID[ID_LEN];
 int Days;
 int i;

 fputs("대여 DVD ISBN 입력: ", stdout);
 gets(DVDISBN);

 i = IsRegistISBN(DVDISBN); // 등록된 ISBN (정보)인지 확인
 if (i == 0) {
  puts("등록되지않은 DVD 입니다.");
  getchar();
  return;
 }

 if (DVDrentnow(DVDISBN) == RENTED) { // DVD가 대여되어있는지 확인
  puts("이미 대여되어있는 DVD 입니다.");
  getchar();
  return;
 }
 // DVD 대여 ↓
 puts("대여가 가능합니다. 대여 과정을 진행합니다.");

 fputs("대여 고객 ID 입력: ", stdout);
 gets(ID);

 if (!IsRegistID(ID)) { // 등륵된 ID인지 확인
  puts("없는 ID 입니다.");
  getchar();
  return;
 }

 fputs("대여 날짜 입력: ", stdout);
 scanf("%d", &Days);

 DVDRentinput(ID, Days, DVDISBN);
 getchar();
}


void StoreDVD()
{
 FILE * fp = fopen("DVDfile.dat", "wb");
 if (fp == NULL)
  return;

 fwrite(&numOfdvd, sizeof(int), 1, fp);

 for (int i = 0; i < numOfdvd; i++)
  fwrite(dvdList[i], sizeof(dvdInfo), 1, fp);

 fclose(fp);
}


void LoadDVD()
{
 FILE * fp = fopen("DVDfile.dat", "rb");
 if (fp == NULL)
  return;

 fread(&numOfdvd, sizeof(int), 1, fp);

 for (int i = 0; i < numOfdvd; i++) {
  dvdList[i] = (dvdInfo *)malloc(sizeof(dvdInfo));
  fread(dvdList[i], sizeof(dvdInfo), 1, fp);
 }

 fclose(fp);
}


저 표시된 StoreDVD() 호출 부분이 저기 있을땐 모든 정보가 다 저장되는데,

RentDVD() 함수 끝에 StoreDVD() 함수를 호출하면 dvdList에서 rentState만 저장이 안됩니다.


이거 뭐가 잘못된거죠?