state machine using function pointers

Hi,

I would like to use function pointers to code a state machine.

That is if I have the following events possible in 2 states S1, S2

S1: E1, E2

S2: E3, E4

and I have processing functions for all possible events for all states, and corresponding function pointers

fpS1E1, fpS1E2, fpS2E3, fpS2E4, corresponding to the processing of a particular event in a particular state.

Now if I define a function pointer two dimensional array like

Code:

`void *fpArray[][]() = { {fpS1E1,fpS1E2}, {fpS2E3,fpS2E4}};`

and if

#define S1 0

#define S2 1

#Define E1 0

#define E2 1,

state = S1;

while (1)

{

eventid = receive_event();

fpArray[state][eventid];

}

where typically inside function

fpS1E1() { ...

state = S2 (any new state)

}

the state machine will function right? Or is there any problem in my logic/code?

I have omitted function pointer initialisations( fpS1E1 = s1e1function and the like)

Meena