[c언어] 함수 포인터와 함수 포인터의 배열의 값의 배열을 변경하는 방법

함수 포인터와 함수 포인터 배열은 C언어에서 유용하게 활용됩니다. 함수 포인터는 함수를 가리키는 포인터이고, 함수 포인터 배열은 함수 포인터들의 배열을 나타냅니다. 이 글에서는 함수 포인터와 함수 포인터 배열의 값을 배열 안에서 어떻게 변경하는지 알아보겠습니다.

함수 포인터로 함수 호출하기

먼저, 함수 포인터를 사용하여 함수를 호출하는 방법을 살펴보겠습니다.

#include <stdio.h>

void hello() {
    printf("Hello, world!\n");
}

int main() {
    void (*funcPtr)() = &hello;  // 함수 포인터 선언 및 초기화
    (*funcPtr)();  // 함수 포인터를 사용하여 함수 호출
    return 0;
}

위 코드에서 funcPtrhello 함수를 가리키는 함수 포인터입니다. (*funcPtr)(); 를 사용하여 hello 함수를 호출할 수 있습니다.

함수 포인터 배열의 값 변경하기

이제 함수 포인터 배열의 값을 배열 내에서 변경하는 방법에 대해 알아보겠습니다.

#include <stdio.h>

void func1() {
    printf("Function 1\n");
}

void func2() {
    printf("Function 2\n");
}

int main() {
    void (*funcArr[2])() = {&func1, &func2};  // 함수 포인터 배열 초기화
    funcArr[0]();  // 첫 번째 함수 호출
    funcArr[1]();  // 두 번째 함수 호출

    // 함수 포인터 배열의 값을 변경
    funcArr[0] = &func2;  // 첫 번째 함수 포인터를 func2로 변경
    funcArr[0]();  // 변경된 첫 번째 함수 호출
    return 0;
}

위 코드에서 funcArrfunc1func2 함수를 가리키는 함수 포인터 배열입니다. funcArr[0] = &func2; 를 사용하여 배열 내의 함수 포인터 값을 변경할 수 있습니다. 변경된 함수 포인터를 사용하여 함수를 호출할 수 있습니다.

함수 포인터와 배열은 C언어에서 강력한 기능을 제공하며, 이러한 기능을 활용하여 코드의 유연성을 높일 수 있습니다.

위의 내용은 C언어에서 함수 포인터와 함수 포인터 배열의 값을 변경하는 방법을 설명한 것입니다. 도움이 되길 바라며, 추가 질문이 있으시다면 연락주세요!

[참고 자료]