Hallo,
Ich habe hier eine Frage: Wie viele Bytes belegt die Stringkonstante „\tHallo Welt\n“ im Arbeitsspeicher?
Dies soll ich auch Skizzieren.
\t H a l l o W e l t \n \0
diese Zeichnung habe ich aus einem Buch. Stimmt sie???
Danke,
Alexander
Hallo,
Ich habe hier eine Frage: Wie viele Bytes belegt die Stringkonstante „\tHallo Welt\n“ im Arbeitsspeicher?
Dies soll ich auch Skizzieren.
\t H a l l o W e l t \n \0
diese Zeichnung habe ich aus einem Buch. Stimmt sie???
Danke,
Alexander
Hallo,
Ich habe hier eine Frage: Wie viele Bytes belegt die
Stringkonstante „\tHallo Welt\n“ im Arbeitsspeicher?
Das kannst Du ganz einfach mit der Funktion „sizeof“ selbst herausfinden. Normalerweise belegt jedes Zeichen ein Byte. Also auch der „Tab“ (\t) am Anfang. Ausserdem ist jeder String in C „Null-terminiert“. Daher am Ende das \0, was ebenfalls ein Byte belegt. Demnach werden theoretisch 13 Byte belegt. Was ergibt sizeof?
#include
#include
int main (void)
{
char a[]="\tHallo Welt\n";
printf("%s belegt %u Bytes.",a,sizeof(a));
return EXIT\_SUCCESS;
}
Gruß
Fritze
Normalerweise bestimmt man die Stringlaenge in Einheiten von characters, also z.B. in Einheiten von chars (ASCII) oder in Einheiten von wchars (UNICODE,MBCS).
In beiden Faellen 13 chars oder 13 wchars (1 Leerzeichen, 1 Terminator, 2 Steuerzeichen, 9 Buchstaben).
Während 1 char 1 Byte im Speicher belegt, belegt ein wchar 2 Bytes.
Danke an alle!!!
Gruss,
Alexander