더북(TheBook)

그런데 여전히 오류가 있다고 나옵니다. 이번에는 왜 그럴까요? 실제로 의도한 것은 gameInfo1.name이지만, 컴퓨터는 *gamePtr.name*(gamePtr.name)으로 해석해서 그렇습니다. gamePtr 변수는 gameInfo1 변수의 역할을 해야 합니다. 그런데 *(gamePtr.name)으로 해석하면 gamePtr 자체는 gameInfo1의 주소를 가지므로 gameInfo1의 역할을 할 수 없습니다. 따라서 *gamePtr이 우선순위에서 먼저 인식되도록 (*gamePtr)처럼 소괄호로 처리합니다.

9.3.1 구조체포인터.c

printf("-- 미션맨의 게임 출시 정보 --\n");
printf("게임 이름 : %s\n", (*gamePtr).name);
printf("발매 연도 : %d\n", (*gamePtr).year);
printf("게임 가격 : %d\n", (*gamePtr).price);
printf("제작 회사 : %s\n", (*gamePtr).company); 

실행결과 icon_con

-- 미션맨의 게임 출시 정보 --
게임 이름 : 나도게임
발매 연도 : 2022
게임 가격 : 50
제작 회사 : 나도회사
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.