TOC | Prev | Next

Function pointers

Functions are just locations in memory.

Pointers are just locations in memory.

An array of function pointers can be a dispatch table.

pointer-functions.c

#include <stdio.h>

int square( int n ) {
    return n * n;
}

int cube( int n ) {
    return n * n * n;
}

int main( void ) {
    int (*func)(int);

    func = square;
    printf( "Executing func at %p, returns %d\n", (void *)func, func(3) );

    func = cube;
    printf( "Executing func at %p, returns %d\n", (void *)func, func(3) );

    return 0;
}

$ pointer-functions

Executing func at 0x1f46, returns 9
Executing func at 0x1f55, returns 27
TOC | Prev | Next