Declare an array of pointers to functions in Visual C++

Original product version:   Visual C++
Original KB number:   30580

This article introduces how to declare an array of pointers to functions in Visual C++. The information in this article applies only to unmanaged Visual C++ code.

The sample code below demonstrates building an array that contains function addresses and calling those functions.

/*
 * Compile options needed: none
 */

#include <stdio.h>

void test1();
void test2();            /*  Prototypes */
void test3();

/* array with three functions */
void (*functptr[])() = { test1, test2, test3 } ;

void main()
{
   (*functptr[0])();    /*  Call first function  */
   (*functptr[1])();    /*  Call second function */
   (*functptr[2])();    /*  Call third function  */
}

void test1()
{
   printf("hello 0\n");
}

void test2()
{
   printf("hello 1\n");
}

void test3()
{
   printf("hello 2\n");
}