typedef struct { // 재고 대장: 현재 보유하고 있는 Video 정보 저장
char title[MAX_CHAR];
int qty; // 수량
} VideoInfo;
void printAllVideo(VideoInfo videoList[], int videoCount)
{
int i;
printf("Video제목\t수량\n");
printf("-------------------------\n");
for (i = 0; i < videoCount; i++)
printf("%s\t%d\n", videoList[i].title, videoList[i].qty);
}
void purchaseVideo(VideoInfo videoList[], int *videoCountPtr, char *title, int qty)
{
*videoList[*videoCountPtr].title = *title;
videoList[*videoCountPtr].qty = qty;
*videoCountPtr += 1;
}
int main(void)
{
int videoCount = 5;
VideoInfo videoList[MAX_VIDEO] = { {"BeforeSunrise", 1}, {"BeforeSunset", 3}, {"BeforeMidnight", 5}, {"Casablanca", 7}, {"EdgeOfTomorrow", 9} };
int rentCount = 0; // 현재 대출 건수는 0임
RentInfo rentList[MAX_CUST];
int choice;
int indexSearched;
char title[MAX_CHAR];
int custId, qty;
printf("1(All Video 출력), 2(구입), 3(검색), 4(대여), 5(All 대여정보 출력), 6(종료): ");
scanf("%d", &choice);
while (choice != 6) {
switch (choice) {
case 1:
printAllVideo(videoList, videoCount);
break;
case 2:
printf("Enter video 제목: ");
scanf("%s", title);
printf("Enter video 수량: ");
scanf("%d", &qty);
purchaseVideo(videoList, &videoCount, title, qty);
break;
}
printf("1(All Video 출력), 2(구입), 3(검색), 4(대여), 5(All 대여정보 출력), 6(종료): ");
scanf("%d", &choice);
}
}
질문 >>>
1. purchaseVideo함수 안에서
*videoList[*videoCountPtr].title = *title;
videoList[*videoCountPtr].qty = qty;
*videoCountPtr += 1;
라고 적었는데 title은 videoList앞에 포인터 형식을 넣지 않으면 빨간줄이 뜨고
qty는 포인터 형식을 넣지 않아도 괜찮습니다.
이건 왜 이러는 건가요? ㅠㅠㅠㅠ
2. purchaseVideo함수를 위처럼 정의하고 난 뒤 빌드업을 하면
디버그 창에서 2(구입)을 선택 후 제목과 수량을 입력받는데
예를 들어 입력을
제목: BeginAgain
수량: 10
이라고 입력한 후 AllVideo 출력을 다시 하면
(이미 저장되어 있는 것들은 다 정상적으로 뜨는데)
B 10 이라고 뜹니다. 이건 왜 이러는 걸까요??ㅠㅠㅠ
식이 너무 길어서 보기 귀찮으실 수도 있지만 한번만 도와주시면 감사하겠습니다 ㅠㅠ
물어볼 곳이 없어서요 ㅠㅠ