Stringzeiger
← Mehrdimensionale Arrays als Parameter | ● | Dynamische Arrays →
Ein Array aus Strings ist kein 2D Array sondern ein 1D Array aus Zeigern, welche auf die jeweiligen Zeichenketten zeigen.
RAM -------sss---a0beach0house0---> ||| ^ ^ ^ ||| | | | ||----+-+------ || | | |-----+-- | | -------
Q Warum?
variable Zeichenkettenlänge
Eine Menge an Zeichenketten kann auch als 2D Array definiert werde, dazu muss aber eine maximale nicht zu überschreitende Länge der Zeichenkette festgelegt werden:
Diese Darstellung ist einfach zu handhaben, verschwendet aber Speicher und ist bzgl. der Zeichenkettenlänge limitiert:
s[0] = a0xxxxxxxxxxxxxxxxxxxxxxxxxxxx s[1] = beach0xxxxxxxxxxxxxxxxxxxxxxxx s[2] = house0xxxxxxxxxxxxxxxxxxxxxxxx
Q Wie wandelt man einen String in Morsecode um?
const char *morse[]={".-", "-.", ...};
while (*ptr) printf(morse[tolower(*ptr++-'a']));
← Mehrdimensionale Arrays als Parameter | ● | Dynamische Arrays →