und im main:
{
char *ptr;
char *args[5];
ptr=zerlegen(arg1);
args[0]=*ptr;
args[1]=ptr[1];
}
Ich kriege entweder nur den ersten Eintrag und kann mir diesen Zeichenweise mit ++ptr angucken
oder eine Fehlermeldung „Konvertierung von char nach char * nicht möglich“
Wenn du ein Char-Array lokal in einer Funktion anlegst, kannst du nicht den Zeiger darauf zurückgeben, weil das Array beim Verlassen der Funktion zerstört wird.
Um ein String zurückzugeben, gibs diese Möglichkeiten:
ACHTUNG! diese Funktion ist dann nicht Multitaskig-Fähig. Wenn mehrere Threads gleichzeitig diese Funktion aufrufen, kann Müll bei rauskommen, weil nur ein Param global vorhanden ist.
der Aufrufer muss dann den pointer nach gebrauch mit free freigeben. Hohe Gefahr von Speicherlecks! Sollte man IMHO auf jeden Fall die Finger von lassen!
in einer Funktion fülle ich ein Char* Array.
Wie kann ich dieses Array übergeben?
Ich gehe mal davon aus, daß Du ein char*-Array meinst.
Du solltest das Array im Hauptprogramm anlegen und einen Zeiger darauf an die Funktion übergeben.
int main(int argc, char\* argv[])
{
char\* myArray[5];
fillArray(myArray, 5);
}
void fillArray(char\*\* yourArray, int size)
{
for (int i = 0; i
(Kann das mal jemand checken? Nicht, daß ich ein \* vergessen habe.)
> > Ich muß doch irgendwie mit zeigern arbeiten?!
Das läßt sich in C nicht ganz vermeiden.
Thorsten