Menu
Coddy logo textTech

구조체 변수 생성하기

Coddy C 여정의 Logic & Flow 섹션에 포함된 레슨 — 63개 중 40번째.

struct 타입을 선언하고 나면, 이를 사용하여 데이터를 보유하는 실제 변수를 생성할 수 있습니다. 구조체 변수를 생성하는 것은 C 언어에서 다른 변수를 선언하는 것과 똑같이 작동합니다. 즉, 데이터 타입을 지정하고 그 뒤에 변수 이름을 지정합니다.

구조체 변수를 생성하는 구문은 다음과 같습니다:

struct StructureName variableName;

예를 들어, 이전 레슨의 Point 구조체를 사용하면 다음과 같습니다:

struct Point p1;
struct Point p2;

이것은 p1p2라는 두 개의 변수를 생성하며, 둘 다 struct Point 타입입니다. 각 변수는 구조체에 정의된 xy 멤버의 별도 복사본을 가집니다.

intfloat와 같은 내장 타입과 마찬가지로 필요한 만큼 많은 구조체 변수를 생성할 수 있습니다. 각 구조체 변수는 독립적이며 멤버에 서로 다른 값을 저장할 수 있습니다. 일단 생성되면, 이 변수들은 좌표 데이터를 체계적인 방식으로 저장할 준비가 됩니다.

challenge icon

챌린지

쉬움

서로 다른 유형의 여러 구조체 변수를 생성하는 방법을 보여주는 C 프로그램을 작성하세요. 프로그램은 다음을 수행해야 합니다:

  1. 다음 멤버를 포함하는 Rectangle이라는 이름의 struct를 정의합니다:
    • 정수형 width
    • 정수형 height
  2. 다음 멤버를 포함하는 Student라는 이름의 struct를 정의합니다:
    • 정수형 id
    • 크기가 30인 문자 배열 name
    • 부동 소수점형 gpa
  3. main 함수에서 다음 구조체 변수들을 생성합니다:
    • rect1rect2라는 이름의 두 개의 Rectangle 변수
    • student1, student2, student3라는 이름의 세 개의 Student 변수
  4. 생성된 각 변수에 대해 다음 형식으로 확인 메시지를 출력합니다:
    • Rectangle variable rect1 created
    • Rectangle variable rect2 created
    • Student variable student1 created
    • Student variable student2 created
    • Student variable student3 created
  5. 생성된 구조체 변수의 총 개수를 다음 형식으로 출력합니다: Total struct variables created: 5
  6. 각 유형의 메모리 사용량을 다음 형식으로 출력합니다:
    • Memory per Rectangle: [size] bytes
    • Memory per Student: [size] bytes

이 챌린지는 여러 구조체 유형을 정의하고 각 유형의 변수를 여러 개 생성하는 능력을 테스트합니다. 각 구조체 변수는 독립적이며 고유한 메모리 공간을 가지므로, 구조체를 사용하여 프로그램에서 다양한 유형의 데이터를 구성하는 방법을 보여줍니다.

치트 시트

struct 변수를 생성하려면 다른 변수를 선언하는 것과 동일한 구문을 사용합니다:

struct StructureName variableName;

여러 개의 struct 변수를 생성하는 예시:

struct Point p1;
struct Point p2;

각 struct 변수는 독립적이며 struct에 정의된 모든 멤버의 별도 복사본을 가집니다. 기본 제공 타입과 마찬가지로 필요한 만큼 많은 struct 변수를 생성할 수 있습니다.

직접 해보기

#include <stdio.h>

int main() {
    // TODO: 여기에 Rectangle 구조체를 정의하세요
    
    // TODO: 여기에 Student 구조체를 정의하세요
    
    // TODO: 여기에 구조체 변수들을 생성하세요
    
    // TODO: 생성된 각 변수에 대한 확인 메시지를 출력하세요
    
    // TODO: 생성된 구조체 변수의 총 개수를 출력하세요
    
    // TODO: sizeof()를 사용하여 각 구조체 타입의 메모리 사용량을 출력하세요
    
    return 0;
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Logic & Flow의 모든 레슨