Frage zu Char Arrays

Hallo Zusammen

Ich haette da mal eine Bitte an Euch

Komme mit den Char Array nicht klar
wie unten moechte Ich die einzelnen elemente ueber
Param[1-100] ansprechen Ich kann sie im loop nicht zuweissen

nicht mit snprintf und nicht mit strncpy

Ich moechte bis zu 100 Zeilen von einer SD einlesen und dann seriel uebertragen
auslesen der Sd kann Ich nur das mit den charr Arrays ueber index kann Ich nicht

Ich danke schon mal

Gruss juergen

char param[]="eins,zwei,drei,ganz,viele";




void setup() {
  // put your setup code here, to run once:
      snprintf(param[4],13, "%s", "dateiname");
      strncpy(*param[2], *"pv1stundedateiname", 30); // Quellstring kopieren




}

void loop() {
  // put your main code here, to run repeatedly:

}

Für die Ermittlung der Adressen braucht Du den & Operator, das Gegenteil von *.

Hallo Zusammen

Hallo DrDiettrich

" Adressen braucht Du den & Operator,"

Das verstehe Ich nicht hast du mal ein kurzes Beispiel

Gruss juergen

Schau mal in die Reference oder ein C Lehrbuch. Bei strncpy() machst Du es genau falsch herum.

Hallo Zusammen

Hallo DrDiettrich

So etwas habe Ich gesucht Ich glaube Ich brauche dafuer kein Buch

Gruss juergen

char message[][5]=
{
    "msg1",
    "msg2",
    "msg3",
    "msg4"
};

void displayMessage(byte msgNum)
{
  strncpy(message[2], "pv1stundedateiname", 30); // Quellstring kopieren
    Serial.println(message[msgNum]);
}

void setup()
{
    Serial.begin(115200);
    displayMessage(2);            // Prints "msg3" to the serial monitor.
}

void loop(){}

Hi

Das kompiliert sogar :o
Macht aber sonst wohl nicht Das, was Du Dir vorgestellt hast.
Ich habe VOR Dein displayMessage ein Serial.print("*"); und dahinter ein Serial.print("-"); gesetzt.
Im Terminal kommen alle 1,x Sekunden nur ein * ... denke, der Nano schmiert ab, weil 'ich' pv1dingenskirchen sinnlos im Speicher rumkopiere und dabei irgend etwas zerstöre, was der Nano zum Leben gerne noch hätte.

Auch will mir nicht in den Kopf, was Du denkst, mit message[2] zu bewirken?

MfG

So etwas habe Ich gesucht

Is klar...

Ich brauche dafuer kein Buch

Auch klar...

strncpy(message[2],.......

"msg3",

Du willst also (ohne Buch) 30 Zeichen in ein Array donnern, wo 4 Zeichen rein passen.

Alles klar...
Keine Fragen...

Habs probiert geht auch mit Buch nicht. :slight_smile:

Oh, doch!
Im Buch würde stehen, wie, oder besser "warum", man einen genügend großen Buffer erstellt und verwendet.
(nehme ich mal an)

Das ist richtig, aber auch mit Buch gehen 30 Zeichen nicht in ein array von 4.

char message[30] @TO so könnte gehen

Was aber nicht beantwortet, warum/wofür überhaupt Pufferarrays benötigt werden.

War gestern schon Spaet kurz bevor Ich zu Bett ging
war nur ein Test obs geht
Spaeter werde Ich da mal Weiter machen
Mein Nano hat bei dem Test keine probs gehabt
man schreibt man braucht kein Buch schon melden
sich einige
besonders Geil finde Ich es wenn die Experten als Hilfe
einen Google-Link einfuegen
so das soll es dann auch gewesen sein

bye juergen