1) string literals in C must be double quoted.
2) I have no idea what this is supposed to be:
Code:
void (*const state_table [5][8]) ()
but it looks like a function pointer prototype, not a 2D array of string literals. How about:
Code:
const char *state_table[5][8] = {
{ "answer", "nothing", "nothing", "nothing", "nothing", "nothing", "nothing", "nothing"},
{ "nothing", "play", "end", "nothing", "nothing", "nothing", "nothing", "nothing"},
{ "nothing", "nothing", "nothing", "nothing", "end", "end", "nothing", "nothing"},
{ "nothing", "nothing", "nothing", "nothing", "nothing", "end", "end", "nothing"},
{ "nothing", "nothing", "nothing", "nothing", "nothing", "nothing", "nothing", "nothing"}
};
Now your printf will work.