[c언어] 함수 포인터와 함수 포인터의 포인터 배열

이번에는 C 언어에서 함수 포인터와 함수 포인터의 포인터 배열에 대해 알아보겠습니다.

함수 포인터

함수 포인터는 함수의 주소를 저장하는 포인터입니다. C 언어에서 함수는 코드의 시작 주소로 해석될 수 있기 때문에 함수 포인터를 사용하여 함수를 가리킬 수 있습니다.

예를 들어, 두 정수를 매개변수로 받아 더하는 함수 add가 있다면, 해당 함수를 가리키는 함수 포인터를 다음과 같이 선언할 수 있습니다.

int (*funcPtr)(int, int);
funcPtr = &add;

위의 예제에서 funcPtradd 함수의 주소를 가리킵니다.

함수 포인터의 포인터 배열

함수 포인터의 배열을 선언하는 것 외에도, 함수 포인터의 포인터 배열을 선언할 수 있습니다. 이는 함수 포인터가 저장된 배열의 주소를 가리키는 포인터 배열입니다.

다음은 함수 포인터의 포인터 배열을 선언하는 예제입니다.

void (*funcPtrArray[3])(int, int);
void (**funcPtrArrayPtr)[] = &funcPtrArray;

위의 예제에서 funcPtrArray는 함수 포인터를 저장하는 배열이며, funcPtrArrayPtrfuncPtrArray의 주소를 가리킵니다.

이러한 함수 포인터의 포인터 배열을 활용하면 유연한 코드 구조를 구성할 수 있습니다.

이상으로 함수 포인터와 함수 포인터의 포인터 배열에 대한 간단한 소개였습니다. 함수 포인터 및 해당 포인터 배열을 사용하면 C 언어에서 코드의 유연성을 높일 수 있습니다.

참고 자료

  1. C Programming - Function Pointer
  2. C Programming - Pointer to Pointer