Il y a plus simple, hein:
void (*ptrfunctbl[6])(void)={f1,f2,f3,f4,f5,f6};
ptrfunctbl[i]()
Je signale aussi que
ptrfunctbl[i]() est automatiquement interprété comme
(*ptrfunctbl[i])() (c'est une règle spéciale pour les pointeurs de fonction), sauf dans les déclarations de type, évidemment.
Je signale aussi que l'associativité de
*ptrfunctbl[6], c'est
*(ptrfunctbl[6]): on choisit d'abord l'entrée du tableau, puis on déréférence.