Hallo,

hier mal in Beispiel, dass ich gerne erklärt hätte:

Code:
char* myArray[128];

//Funktion
void xxx(char** ar){
  ar[0] = irgendeineZeichenkette;
}

//Funktionsaufruf
xxx(myArray);
Es geht jetzt nicht darum, warum ich das jetzt genau so geschrieben habe (das ist, weil es anders nicht möglich war).
Es ist so.
Der Code funktioniert am Ende.

Ich möchte eigentlich ein Array anlegen, dass Platz für 128 Zeichenketten bietet.
Klar ist mir, dass der Compiler nicht wissen kann, wie lang eine Zeichenkette sein kann, wenn er auf dieses Konstrukt trifft: myArray[128]
Aber was passiert jetzt genau, bei char* myArray[128]? Bekomme ich hier ein Array mit reserviertem Speicherplatz für 128 Pointer (char*)?

Dann muss ich das einer Funktion übergeben, in der noch etwas mehr passiert, als das, was jetzt hier steht - eine Funktion, die ein char* erwartet: strtok()
Aus diesem Grund komme ich über die ausgeworfenen Fehlermeldungen zu dem char** . Das funktioniert zwar, aber bei char** weiß ich nicht mehr, was es bedeuten soll. Soll das ein Zeiger auf einen Zeiger sein?

Ich hoffe, dass mir das irgendeiner richtig erklären kann, zurzeit blicke ich da noch nicht durch!



MfG


PS: Falls das Thema hier deplaziert ist, evtl. bitte verschieben nach: Forum -> Microcontroller -> Software, Algorithmen und KI