Problem mit String Array's

Hallo zusammen,

ich bin vor kurzem in die Arduino Welt eingestiegen.

Ich versuche mich an einem einfachen Menü für ein LCD Display.

Als Menüeinträge nutze ich String Array's in der Form:

const String menux[3] [2] = {
{"Eintrag 1", "Eintrag 11"}, 
{"Eintrag 2", "Eintrag 22"}, 
{"Eintrag 3", "Eintrag 33"}
};

Nach ein paar dieser Array's, die jedes für sich ein eigenes Untermenü bilden, habe ich den Effekt, dass der Nano auf dem das Sketch läuft nicht mehr reagiert. Compiliert wird alles ohne Probleme.

Sobald ich ein beliebiges Array auskomentiere, geht alles wie es soll.

Der RAM ist zu 60% gefüllt, kann da zu wenig Platz das Problem sein?

Kann ich anstatt String auch folgendes schreiben?

code]
const char *menux[] [2] = {
{"Eintrag 1", "Eintrag 11"},
{"Eintrag 2", "Eintrag 22"},
{"Eintrag 3", "Eintrag 33"}
};
[/code]

Das würde Speicher sparen, aber ich weiß nicht genau ob sich so ein char Array wie eins mit Strings verhält.

Sorry für die vielleicht dämlichen Fragen, aber ich weiß nicht mehr weiter.

Danke
Andreas

(deleted)

(deleted)

Ihr seid ja schnell... :o

Danke euch erstmal für die Anregungen.

PROGMEM scheint wohl das Mittel der Wahl zu sein.

Zwei Fragen die sich mir da stellen.

Das F-Makro dient nur bei serial.print dazu Speicher auszulagern, oder?

Und zu dem Array von Char, ich gebe zu ich habe darüber gefühlt eine Million Texte gelesen und sehs immer noch nicht ein, würde es sich doch in dem Falle anbieten, weil weniger Speicher verbraten wird?

Ich speichere in dem Array ja prinzipiell nur Menünamen, die dann auf dem LCD ausgegeben werden. Die ganzen String Befehle brauche ich nicht zwangsläufig.

Nur ist mir der Unterschied zwischen String[xy] [xy] und char *[xy] [xy] nicht ganz klar. Ist das nicht beides ein Mehrdimensionales Array?

Ich frage mich nur warum bei dem Nano bei 60% RAM schluss ist? Das ist ja grad ein wenig mehr als die Hälfte...

Nochmal vielen Dank...

Nur ist mir der Unterschied zwischen String[xy] [xy] und char *[xy] [xy] nicht ganz klar. Ist das nicht beides
ein Mehrdimensionales Array?

beides sind ,mehrdimensionale Arrays - von UNTERSCHIEDLICHEN Datenttypen.

Wenn du bis jetzt nicht nach Arduino String vs. C++ string gesucht hast, HOLE DAS DRINGEND NACH.

Das F-Makro kannst du für so ziemlich alles nehmen was auf die print.h aufbaut. LCD, LedControl, HT16K33, viele andere Displays, ethernet, wifi, ... "fast" überall wo du print nutzt.

Wie Klug du bist.

Vielen Dank!

Ich werde das alles mal testen und mir deinen Link mal zu Gemüte führen.

Grüße