Bonjour,
J'étudie des nouvelles pistes (nouvelles pour moi hein)
L'idée est de cree des menu dans le terminal.
Pour faire cela, je dois passer des pointeurs sur des chaines de caractères.
Je defini donc les chaines comme globalesje fais passer ces pointeurs comme pointeur de pointeur dans l'entête de mon fichier (menu.h), le prototype de la fonction est donc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 char *MaChaine[] = {" 1 = Menu 01", " 2 = Menu 02", " 3 = Menu 03", " 4 = Menu 04" };
Je passe donc un byte* pour recuperer le resultat, le char ** qui pointe sur mon tableau de pointeur, et le nombre déliements contenu dans mon tableau de pointeur int
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ; ; extern void GetChar(byte *,char **,int); . . .
Pour afficher mes chaines, depuis la fonction GetChar(), j'apelle une autre fonction donc la déclaration est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 void menu00( byte *,char **,int); ..Et dans cette fonction j'affiche les diverses chaine via les pointeur pMenu[i] avec le 'i' pour boucler sur tous les pointeurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 void menu00( byte *pEtatMenu,char** pMenu,int NbElements){ for(int i=0;i<NbElements;i++){ Serial.println(pMenu[i]); } ..... }
Tous se passe bien, mais à la compilation j'ai les message:
Je comprend +/- l'erreur, j'ai défini mes chaines de caractère comme constante, et je suppose que je les affiche comme variable.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] };
Mais comment lever cette erreur?
J'ai deja essaye des "trucs", avec des cast (const) un peu partout, mais il reste toujours des erreurs (pas toujours les même d’ailleurs.
Si quelqu'un pouvait éclairer ma lanterne....
Un grand merci
Bonne fêtes à tous
Michel
Partager