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 →