[[사외교육]]/[SDS]신입사원_역량강화 17

C 언어 에서의 '함수 포인터'의 의의

(발췌 : "C로 배우는 알고리즘' p80 中 ) 함수 포인터는 잘만 사용한다면 아주 유용한 C의 특징이다. 예를 들어서 그래픽 라이브러리를 작성한다고 할 때 그래픽 보드에 따라서 그 제어 방법이 모두 다르기 때문에 함수의 구성이 매우 어렵다. 이때는 기능을 분류한 뒤에 각 기능별 각 그래픽 보드별로 함수를 작성한다. 그리고 난 후에 각 기능을 하는 함수 포인터를 만들어 놓고, 사용자의 그래픽 보드에 맞는 함수를 이 함수 포인터에 대입해두면 간단하게 라이브러리를 그래픽 보드에 상관없이 사용할 수 있다. 이 외에도 qsort()라는 라이브러리 함수는 데이터 형에 관계없는 정렬 방법을 제공하기 위하여 void 포인터와 함수 포인터를 이용한다.

realloc() 의 사용 예제

//CreateArray()에서 생성된 DArray->array의 사이즈 보다 //더 큰 배열을 요구하였을때 (예제에서는 2배) //AddArray()에서 realloc()을 이용하여 //해당 구조체에 매달린 배열을 동적으로 생성하는 예제 코드. #include #include /* 생성될 array 의 정보를 담고 있는 구조체*/ typedef struct DArray{ int max_size; //현재 최대 크기 int size; // 현재 위치 int* array; //배열 시작주소 }DArray; //초기 사용자로부터 [5]크기를 가진 배열의 생성 및 초기화 함수 DArray* CreateArray() { DArray* temp=(DArray*)malloc(sizeof(DArray)); temp-..