C언어 구조체 배열
코딩C언어
읽는데 2분 소요
처음 쓰여진 날: 2026-03-19
마지막 수정일: 2026-03-19
조회수: 0
요약
C언어 구조체 배열의 선언과 초기화, 바깥 중괄호 생략 패턴, 구조체 배열과 포인터 접근 방법을 알아봅니다. 정보처리기사 실기에 출제된 구조체 배열 문제를 풀기 위한 핵심 개념을 정리합니다.
구조체 배열이란?
구조체도 배열로 선언할 수 있습니다. 배열의 각 요소가 구조체인 형태입니다.
c
코드 하이라이팅 중...

바깥 중괄호 생략
위 코드에서는 각 구조체 요소를 {}로 감쌌지만, C언어에서는 바깥 중괄호를 생략할 수 있습니다. 컴파일러가 구조체 멤버 순서대로 값을 자동 분배합니다.
c
코드 하이라이팅 중...
컴파일러는 멤버 순서대로 값을 채웁니다. Student 구조체가 name, score[3] 순서이므로:
| 값 | 분배 위치 | 이유 |
|---|---|---|
| "Kim" | s[0].name | 첫 번째 멤버(name)에 대입 |
{0xA0, 0xA5, 0xDB} | s[0].score | 두 번째 멤버(score 배열)에 대입 |
| "Lee" | s[1].name | s[0]이 다 채워졌으므로 s[1]로 이동 |
{0xA0, 0xED, 0x81} | s[1].score | s[1]의 두 번째 멤버에 대입 |
시험에서 자주 나오는 형태
기출문제에서는 바깥 중괄호를 생략한 형태가 출제된 바 있습니다. 멤버 순서를 확인하고 어디서 잘리는지 파악하는 것이 핵심입니다.
구조체 배열과 포인터
구조체 배열의 특정 요소를 포인터로 가리킬 수 있습니다. 구조체가 자기 자신을 가리키는 포인터를 멤버로 가지면 연결 리스트를 만들 수 있습니다. 연결 리스트의 노드는 주로 동적 메모리 할당으로 생성합니다.
c
코드 하이라이팅 중...
