deepthroat
Erfahrenes Mitglied
Ich sagte ja bereits das du diese Methode nur bei statischen Arrays benutzen kannst.tobee hat gesagt.:Das ist meine Funktion wo ich die Array Größe ermittel.Code:char count(const char* a) { return sizeof(a) / sizeof(a[0]); }
Irgend etwas ist aber noch falsch?
Wenn du einen Zeiger an eine Funktion übergibst ist und bleibt das nur ein Zeiger. Dieser hat keine Struktur mehr und die Information die der Compiler von einem statischen Array hat sind nicht verhanden. Der Zeiger hat eine konstante Größe - auf einem 32bit System normalerweise 4 Byte. Da es ein Zeiger auf char ist, ist die Größe von a[0] immer 1 Byte. Das heißt die Funktion liefert immer 4 zurück.
Wenn du ein dynamisches Array benutzt (was erst zur Laufzeit erstellt wird), dann mußt du dir die Größe selbst merken, da der sizeof Operator nur zur Kompilierzeit verwendet werden kann.
Gruß