tableau de fonctions en paramètre d'une fonction

avec ce type d'usage des String vous allez sans doute très vite morceler votre mémoire

pour ceux qui ont du mal à construire ce genre de déclaration, on procède par étapes logiques:
[color=blue]foncArg1[/color] le nom de la variable qu'on veut créer
foncArg1[color=blue][][/color] ce sera un tableau
foncArg1[[color=blue]7[/color]] de 7 éléments
[color=blue]*[/color] foncArg1[7] vers des pointeurs
[color=blue]([/color]* foncArg1[7][color=blue])()[/color] de fonction
(* foncArg1[7])([color=blue]String, int[/color]) prenant 2 param, une String et un int
[color=blue]String[/color] (* foncArg1[7])(String, int) retournant une String

donc vous avez une paire de parenthèse en trop

String (*foncArg1[7])(String, int) =
{arg10Func, arg11Func, arg12Func, arg13Func, arg14Func, arg15Func, arg16Func};

et on peut aussi laisser tomber le 7 puisque vous fournissez une liste d'initialisation

l'idéal pour la lisibilité c'est quand même d'utiliser un typedef mais votre approche est correcte

String arg10Func (String srt, int i);
String arg11Func (String srt, int i);
String arg12Func (String srt, int i);
String arg13Func (String srt, int i);
String arg14Func (String srt, int i);
String arg15Func (String srt, int i);
String arg16Func (String srt, int i);

typedef String (*FunctionPointer)(String, int);
FunctionPointer foncArg1[] = {arg10Func, arg11Func, arg12Func, arg13Func, arg14Func, arg15Func, arg16Func};