sizeof von Stringarray

#4819599
Lesenswert?
• ▲
▼
@ size (Gast)

>Das Problem ist, Wortsize ergibt beim Debuggen stets 4.

Logisch, das ist die Länge des POINTERS wort, welcher ein Pointer auf 
einen Char ist. Die Länge deines Strings kann man so nicht ermittlen, 
dafür gibt es die Funktion strlen(); Die Länge eines allgemenen Arrays 
kann so auch nicht bestimmt werden, das geht nur mit konstanten Arrays. 
über ein Pointer geht es nie! Und Arrays/Strings werden in C IMMER als 
Pointer übergeben.
1
char meinstring[] = "Hallo Welt";
2

3
int l = sizeof(meinstring);
#4819607
Lesenswert?
• ▲
▼
sizeof bei einem Array funktioniert dort, wo das Array auch definiert 
ist.

Dann liefert es die Größe (in Bytes) vom Array und nicht die Anzahl 
Zeichen, die dort abgelegt sind.

In deinem Fall ist das Stringliteral auch nur ein const char*. Du darfst 
es also nicht verändern
#4819757
Lesenswert?
• ▲
▼
THOR schrieb:
> Ordner schrieb:
>> Benutze strlen() ;
>>
>> http://stackoverflow.com/questions/15000544/get-st...
>>
>> Stackoverflow ist IMHO eh die bessere Adresse für Fragen zur
>> Programmierung.
>
> Da müsste man Englisch für können. Das ist für den modernen Copypaste
> Programmierer natürlich eine Hürde.

Egal, die Antwort mit der höchsten Zustimmung wird kopiert und solange 
verändert, bis der Compiler nicht mehr meckert.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren