006
15.04.2004, 12:29 Uhr
ao
(Operator)
|
| Zitat: |
typecast postete Lass das mit sizeof, nimm die Funktion strlen().
sizeof(dateiname) müsste dir 4 zurückliefern (je nach Architektur), da dateiname ein char* ist, also ein Pointer auf char. Und auf 32-Bit Rechnern hat ein Pointer 4 Byte. Es liefert also nicht das zurück, was du erwartest.
|
dateiname ist ein Array, kein Pointer (vgl. Deklaration). Überall, wo das sichtbar ist, liefert sizeof (dateiname) 12. Reichst du das Array als Parameter in eine Funktion hinein, dann geschieht das als Pointer. Innerhalb der Funktion liefert sizeof (FormalerParameter) darum die Größe eines Pointers (je nach Architektur 4 oder was anderes), weil nicht erkennbar ist, dass sich hinter dem Pointer ein 12 Byte langes Array verbirgt.
ao |