본문 바로가기

윤성우의 C Programming

포인터 배열과 포인터 배열의 포인터 형

포인터 배열은 포인터들의 배열이다. 즉, 배열의 각 요소가 메모리 주소를 저장하는 포인터 변수입니다. 이를 통해 여러 위치에 저장된 데이터에 대한 참조를 배열 형태로 관리할 수 있다. 포인터 배열은 특히 문자열이나 다양한 데이터 구조의 배열을 다룰 때 유용하다. 

포인터 배열의 기본 구조

타입 *배열이름[배열크기];
  • 타입: 배열이 가리킬 데이터의 타입
  • 배열이름: 배열의 이름
  • 배열크기: 배열이 저장할 포인터의 개수
#include <stdio.h>

int main() {
    // 문자열을 가리키는 포인터의 배열 선언
    const char *days[7] = {
        "Monday", "Tuesday", "Wednesday",
        "Thursday", "Friday", "Saturday", "Sunday"
    };

    // 포인터 배열을 이용해 요일 출력
    for(int i = 0; i < 7; i++) {
        printf("%s\n", days[i]);
    }

    return 0;
}

 

포인터 배열은 다음과 같은 경우에 특히 유용하다. 

  • 다양한 메모리 위치에 저장된 데이터에 대한 접근: 포인터 배열을 사용하면 여러 메모리 위치에 흩어져 있는 데이터를 효율적으로 관리하고 접근할 수 있다.
  • 동적 메모리 할당된 데이터의 관리: 동적으로 할당된 여러 메모리 영역의 주소를 저장하고 관리하는 데 사용될 수 있다.
  • 함수 포인터의 배열: 여러 함수의 주소를 저장하는 배열을 만들어 조건에 따라 다른 함수를 호출하는 등의 고급 프로그래밍 기법에 사용된다.