Page 159 고등학교 프로그래밍 교과서
P. 159










2 구조체 배열을 만들어 사용하자






구조체 변수는 학생 한 명의 데이터만을 저장할 수 있다. 그러나 한 학급의 구성원
이 20명이라면 20명의 성적 정보를 저장해야 한다. 이때 사용하는 것이 구조체 배열
이다. 20명의 성적 정보를 저장할 때 20개의 구조체를 저장할 구조체 배열을 선언하

고, 배열의 각 요소마다 한 사람의 이름과 3과목 성적 구조체를 연결한다.



myClass[1]
myClass[0] myClass[2]


















myClass....


[그림Ⅱ- 11] 구조체 배열을 이용한 성적 정보 입력

myGrade 구조체의 배열을 선언하는 형식은 일반적인 배열을 선언하는 것과 다르

지 않다. 다만 구조체 배열이므로 앞에 struct를 붙이면 된다.
myGrade를 이용하여 20명의 이름과 성적 정보를 저장할 수 있는 구조체 배열

myClass는 다음과 같이 선언한다.


struct myGrade {
Q & A
char *name;
int korean; 배열과 포인터는 매우 유사하다
int english; 고 하였다. 그러면 구조체 포인터를
만드는 것도 가능할까?
int math;
구조체 포인터를 사용하면 배열
}; 이 가진 기억 장소 고정 할당의 단점
int main(void) 을 해결할 수 있다. 배열은 선언할
때 크기가 고정되지만, 포인터를 이
{
용하면 필요할 때마다 기억 장소를
struct myGrade myClass[20]; 20명의 성적 정보 저장 할당받아 사용할 수 있다. 이런 장점
... 으로 구조체 포인터는 컴퓨터의 자
} 료 구조(리스트, 스택, 큐 등)를 구현
할 때 사용한다.

8. 구조체와 공용체 157






(책)2015프로그래밍-교과서3차심의본 본문.indb 157 2017-09-05 오후 4:16:36
   154   155   156   157   158   159   160   161   162   163   164