@Benedikt:
Dir ist aber schon klar, dass das eine sehr heikle Methode ist? Man
gibt normalerweise keine Zeiger aus einer Funktion zurück. Sobald die
Funktion beendet ist, werden die Variablen aus dem Stack gelöscht. D.h.
sie werden nicht wirklich gelöscht, aber der Stackpointer wird versetzt.
Wenn du jetzt die Werte nicht direkt ausliest und dafür sorgst, dass
nichts mehr auf den Stack gelangt, bis du die Werte hast, dann sind die
Werte weg und du hast Datenschrott.
Besser ist oben genannte Lösung, ein Array zu übergeben, wobei man
keinen Pointer übergeben muss, da Arrays immer per Referenz übergeben
werden (man kann auch sagen, das Array ist ein Pointer (so in etwa)).
@Gast:
Das wird so nicht funktionieren. Du schreibst mit *test[x] in das
Array. Somit hast du nen Zeiger auf nen Zeiger, übergibst aber nur nen
einfachen Zeiger. Entweder man schreibt so rein:
test[0] = 10;
oder man übergibt an die Funktion nen Zeiger auf nen Zeiger, also
entweder char **test oder char *test[].
Dann funktioniert das auch.