Frage zu char **list

11/10/2007 - 14:25 von Oliver Friedrich | Report spam
Hallo,

ich habe hier eine Funktion die als Argument unter anderem eine Liste von
Strings will, also

func(...,char **list,...)

Woher weiß die Funktion wieviel Elemente diese Liste haben wird? Ich bin C-
Einsteiger und weiß das man das Ende eines Strings an der NULL erkennt. Wie
ist denn das Ende einer Stringliste gekennzeichnet?
Ich wundere mich das die Funktion nicht so aussieht func(char **list, int
sizeOfList) weil das habe ich jetzt schon so oft gesehen, das man einem
Array immer noch eine Größenangabe "mit auf den Weg gibt".

Warum hier nicht?

Danke

Oli
 

Lesen sie die antworten

#1 ram
11/10/2007 - 14:33 | Warnen spam
Oliver Friedrich writes:
func(...,char **list,...)
Woher weiß die Funktion wieviel Elemente diese Liste haben wird?



»list« ist erst einmal nur der Bezeichner eines »char **«-Objektes,
welches also einen Zeiger auf ein »char *«-Objekt oder 0 enthàlt.

Wie die Funktion diesen Zeiger interpretiert, ist ihre Sache.

Eine eventuell benötigte Angabe der Lànge eines Objektes oder
die Kennzeichnung seines Endes muß also durch das Programm
verwirklicht und interpretiert werden. Sie wird nicht durch
die Programmiersprache C vorgegeben.

Ähnliche fragen