Pas facile de décrire ce dont j'ai besoin. Je vais essayer d’être le plus clair
Je souhaite passer une variable a une fonction.
Mais au lieu de le mettre en toute lettre :affiche(var), je souhaiterai passer par un tableau liste[]={var1, var2}. pour pouvoir le parser dans une boucle for
bref, un nom de variable défini dans une variable !
for i in (byte i = 0; i < 2 ; i++}
{
affiche(liste[i]);
}
Malheureusement, cela ne fonctionne pas car j'ai un mismatch de type.
help ! Une idée de comment faire, si toutefois c'est possible ?
le code complet :
void affiche(const byte mot[])
{
for (int i = 1; i < mot[0] + 1; i++)
{
matrice_leds[mot[i]] = CRGB::PapayaWhip;
}
}
loop
{
const byte une[4] = {3, 70, 69, 68};
const byte deux[4] = {3, 40, 49, 78};
byte liste[]={une, deux}
for i in (byte i = 0; i < 2 ; i++}
{
affiche(liste[i]);
}
Je ne suis pas un spécialiste des pointeurs, mais je pense que la solution se trouve là : les pointeurs.
Tu crées un tableau de pointeurs qui contient les adresses de tes variables et tu lis les données qui se trouvent à chaque adresse. Par contre, je pense que ça ne marchera que si toutes tes variables sont de même type : exemple, toutes des int.
Sinon, si c'est composite, il doit falloir passer par une structure de pointeurs, mais ça dépasse mes faibles connaissances en la matière
Salut , un tableau a double entree ne ferait pas l ' affaire ?
void setup() {
// put your setup code here, to run once:
int une[] = {3, 70, 69, 68};
int deux[] = {3, 40, 49, 78};
char liste [2][4] = {une, deux};
for (byte i = 0; i < 2; i++) {
for (int j = 0; j < 4; j++) {
Serial.println(liste[i][j]);
}
}
}
void loop() {
// put your main code here, to run repeatedly:
}