Gast
#4819588
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
Das Problem ist, Wortsize ergibt beim Debuggen stets 4. Woran liegt es?
|
Anzeige
|
sizeof von Stringarray
Gast
#4819588
Das Problem ist, Wortsize ergibt beim Debuggen stets 4. Woran liegt es?
Gast
#4819591
size schrieb: > Das Problem ist, Wortsize ergibt beim Debuggen stets 4. > > Woran liegt es? Wort ist als Zeiger definiert. Du arbeitest offensichtlich auf einem 32-Bit-System. Da sind die Zeiger 4 Byte groß... C-Grundlagen! Wort ist ein Zeiger. Und mit sizeof bekommst du die Größe vom Zeiger und nicht von dem, worauf er zeigt. Du musst die Größe mit einem weiteren Parameter übergeben.
Gast
#4819595
ja die Vermutung hatte ich auch schon, aber wie muss ich das denn nun machen, dass ich die Anzahl an Buchstaben in meinem Array bekomme? @ 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.
Gast
#4819600
Benutze strlen() ; http://stackoverflow.com/questions/15000544/get-string-size-in-bytes-in-c Stackoverflow ist IMHO eh die bessere Adresse für Fragen zur Programmierung. Wenn es ein C-String ist (da wäre char* besser), kannst du dies durch suchen des Stringterminators '\0' feststellen (das macht strlen). 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
Gast
#4819674
es gibt die Funktion strlen(Wort); Wenn du weißt, dass du einen String verwendest, dann bekommst du so die Länge
Gast
#4819708
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. 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 schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|