Martin45461 schrieb:
> Also ich weiß das hier die gespeicherten Strings vom 2DArray mit dem von
> cmd verglichen werden und alle treffer werden dann in return geschickt.
Nein,
Der ERSTE Treffer bildet den Rückgabewert. Alle Treffer würde anders
gehen.
> Nur was hat der Stern in char *cmd für eine bedeutung ?
Es bedeutet vor allen Dingen, dass du ganz dringend ein C-Buch brauchst.
> *cmd, ist das auch ein Array ?.
Es ist ein Pointer.
Arrays werden in C vom Aufrufer zur Funktion so "übergeben", dass der
Aufrufer die Startadresse des Arrays zur Funktion übergibt. Der bekommt
sie dann in Form eines Pointers zur Verwendung.
Der Array-Pointer Dualismus und wie er sich auf das Sprachdesign
auswirkt und benutzt wird, ist ein wesentlicher und wichtiger Punkt der
Programmiersprache C. Er findet sich in einem 200 seitigen Buch erstmals
ungefähr auf Seite 30 und wird das ganze restliche Buch hindurch
benutzt. Insbesondere sind Pointer im Allgemeinen und Array-Pointer
Dualismus im speziellen das Rückgrat bei Funktions-Argumentübergaben,
Stringverarbeitung und dynamischer Speicherallokierung.
Daher: Du brauchst ein Buch! Denn wenn dir weder Pointer noch dieser
Dualismus nichts sagen, bzw. du nicht weist welche Konsequenzen die
haben, dann möchte ich nicht wissen, was du sonst noch so alles von C
nicht weißt. Zumal Pointer, zumindest in dieser Form als
Argumentübergabe bei Arrays, in jedem anständigen C-Programm welches
komplexer als "Hello World" ist, praktisch unvermeidbar sind. Irgendwo
steckt immer ein Pointer.