etwas vereinfacht:
funktionen ist bei dir definiert als ein Pointer auf eine Speicher-Zelle (also eine Speicheradresse), ab wo deine insgesamt 3 Strings gespeichert stehen:
char *funktionen[3] = {"Funk", "Autodrive", "Kabel Bedienung"};
und ein Pointer (eine Speicheradresse) ist nichts anderes als eine Integerzahl, wahrscheinlich 32bit (4 Bytes).
sizeof(funktionen) ist also die Größe dieses Pointers (also 4 für 4 Bytes)
*funktionen ist dagegen die Größe der eigentlichen Stringvariable, auf die der Pointer funktionen zeigt,
und daher ist sizeof(*funktionen) die Gesamtgröße (Gesamtlänge) deiner Strings, also "Funk", "Autodrive", "Kabel Bedienung" = 4+8+16=28 Bytes.
Diese Methode funktioniert allerdings nur mit fest vordefinierten (konstant langen) Strings, denn sizeof() weiß bei variablen Strings nicht, welche Länge hinter der Pointeradresse aktuell stehen.
- - - Aktualisiert - - -
verzählt: String-Array 4+9+15, sind aber auch 28 vermutlich![]()
Lesezeichen