sketch_test:22: error: declaration of 'foncArg1' as array of functions
String ptr (String str,String *(*foncArg1[]()) ) {
^
C:\Users\Sbran\OneDrive\Documents\Arduino\sketch_test\sketch_test.ino: In function 'void loop()':
sketch_test:20: error: expected ';' before ')' token
ptr(&foncArg1));
^
C:\Users\Sbran\OneDrive\Documents\Arduino\sketch_test\sketch_test.ino: At global scope:
sketch_test:22: error: declaration of 'foncArg1' as array of functions
String ptr (String str,String *(*foncArg1[]()) ) {
^
C:\Users\Sbran\OneDrive\Documents\Arduino\sketch_test\sketch_test.ino: In function 'String ptr(...)':
sketch_test:27: error: 'foncArg' was not declared in this scope
msg = foncArg[a](str,i)
^
sketch_test:27: error: 'a' was not declared in this scope
msg = foncArg[a](str,i)
^
sketch_test:27: error: 'str' was not declared in this scope
msg = foncArg[a](str,i)
^
exit status 1
declaration of 'foncArg1' as array of functions
[code]
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
Que doivent faire les fonctions ? Retourner un pointeur ce n’est pas plus compliqué que retourner un entier
char * f1(const char * s)
{
static char str1[50]; // s’assurer d’avoir assez de place
strcpy(str, “param = “);
strcat(str, s); // ou pour ne pas déborder utiliser strncat() et 50-9-strlen(s) comme place totale et ne pas oublier de mettre un ‘\0’ à la fin au cas où
return str1;
}