49.7 연습문제: 구조체 포인터에 구조체 주소 할당하기

상품 구조체 Item이 정의되어 있습니다. 다음 소스 코드를 완성하여 "한정판"이 출력되게 만드세요.

practice_pointer_to_struct.c

#include <stdio.h>
#include <stdbool.h>

struct Item {
    char name[100];
    int price;
    bool limited;
};

int main()
{
    struct Item item1 = { "베를린 필하모닉 베토벤 교향곡 전집", 100000, false };
    ____________________

    ____________________

    ptr->limited = true;

    if (ptr->limited == true)
        printf("한정판\n");
    else
        printf("일반판\n");

    return 0;
}

실행 결과

한정판

정답

 struct Item *ptr;
 ptr = &item1;

해설

구조체 포인터 ptr의 멤버 limited에 값을 할당한 뒤 if 조건문에서 값을 확인하고 있습니다. 따라서 struct Item *ptr;처럼 구조체 포인터를 선언해줍니다. 그리고 &연산자를 사용하여 ptrp1의 주소를 할당하면 "한정판"을 출력할 수 있습니다.