Bonjour à tous,
Je crois que je fais une erreur basique mais je ne vois pas où?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
char sais[50];
if(detectKb && !enSaisie) {         //lecture 1er caractère du clavier
    lcd.backlight();
    enSaisie = true;
    if(carLu == '0') sais[0] = 'O';   //remplacement de '0' par 'O'
    else sais[0] = carLu;
    afficMsgLcd(0,0,String(sais[0]),true);  //affichage de caractère saisi sur le lcd
    detectKb=false;
  }
  if(detectKb && enSaisie){           //lecture  complète du clavier caractère par caractère
    static uint8_t j=0;    
    if(carLu != 'C'){                      //jusqu'à la lettre 'C'
      j++;
      sais[j]=carLu;
      afficMsgLcd(j,0,String(sais[j]),false);
      detectKb=false;
    }
    else{                                      //fin de la saisie
      char saisiKb[j+2];
      for(i=0;i<j+1;i++){
        saisiKb[i]=sais[i];
        //Serial.print(saisiKb[i]); Serial.println(sais[i]);      
      }
      saisiKb[j+2]='\0';
      enSaisie = false;
      j=0;
 
      gestionCommandes(saisiKb);
      detectKb=false;
      if(!enAffic) lcd.noBacklight();
    }
  }
je charge le tableau sais en saisissant un certain nombre de caractères par un clavier en terminant par 'C'.
Ayant enregistré le nombre de caractères saisis en j, je crée un nouveau tableau char saisiKb[j+2];
Puis je tente de copier les j caractères du tableau sais dans le tableau saisiKb.
Je termine par le caractères '\0', puis j'appelle la procédure gestionCommandes en passant le tableau.
Or cela ne fonctionne pas car j'ai découvert dans l'affichage du Serial que les deux tableaux ne contiennent que des caractères NUL.

Merci d'éclairer ma lanterne..