Arduino Sketch welcher verschiedene Zeichenfolgen in einer Variablen speichert.

Kann bitte jemand diesen Arduino Sketch überprüfen. Er sollte eigentlich alle Möglichkeiten von Gewissen Zeichen in 5 Spalten in einer variablen abspeichern. Also A; A1; AA1;BB3a;Hg66.;....usw.
LG
Danke im forraus
Sketch: Sketch

void setup() {
  Serial.begin(74880);
  String zeichenString =  "0123456789,.:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
  int felder = 5;
  int zeichenLaenge = zeichenString.length();
  char zeichen[zeichenLaenge];
  zeichenString.toCharArray(zeichen, zeichenLaenge + 1);
  char aktuell[felder];
  Serial.println(zeichen);
  combi(0, felder, aktuell, zeichenLaenge, zeichen);
}
 
void combi(int index, int felder, char aktuell[], int zeichenLaenge, char zeichen[]) {
  for (int i = 0; i < zeichenLaenge; i++) {
    if (index == felder) {
      Serial.println(aktuell);
      return;
    }
 
    aktuell[index] = zeichen[i];
    combi(index + 1, felder, aktuell, zeichenLaenge, zeichen);
 
  }
}
 
void loop() {
}

Hi

Möchtest Du jetzt ein 'Klappt' oder ein 'Klappt nicht' hören?
Was soll Dein Sketch machen, was macht Er statt Dessen und was erwartest Du nun von uns?

MfG

Ohne mehr zu den Sketch anzuschauen: Die Variablen die Du im Setup definierst gibt es im loop oder comby nicht.

Informiere Dich über globale und lokale Variablen.

Eine rekursiver Aufruf einer Funktion (aus sich selbst heraus) gibt auch jede Menge Probleme.
Grüße Uwe

uwefed:
Eine rekursiver Aufruf einer Funktion (aus sich selbst heraus) gibt auch jede Menge Probleme.

Besonders ohne Abbruchbedingung, die man als erstes programmieren sollte.
Auf unseren kleine RAM-Beständen beansprucht Rekursion stark den Stack und das kann nach hinten los gehen.
Das sollte man ohne Rekursion lösen, zumal es nur eine Ausgabe ist.

Gruß Tommy

Um Speicher zu sparen kann man Rekursionen auch im Compiler laufen lassen.

Oder eben auf eine Iteration umbauen.

Hackarduino:
Kann bitte jemand diesen Arduino Sketch überprüfen. Er sollte eigentlich alle Möglichkeiten von Gewissen Zeichen in 5 Spalten in einer variablen abspeichern. Also A; A1; AA1;BB3a;Hg66.;....usw.

das wird auf einem Uno nicht klappen, diese Kombinationen in Variablen zu halten.

Du hast etwa 39 erlaubte Zeichen. Bei 5 Stellen komme ich schon auf

3938373635 = 69090840 Kombinationen wenn jedes Zeichen nur einmal vorkommt. Dazu 5 Byte pro Kombination also etwa 330MB. Zu viel für die üblichen UNOs/MEGAs.

Was ist die eigentlichen (Haus-)Übung/Zweck?