Supportnet Computer
Planet of Tech

Supportnet / Forum / Anwendungen(Java,C++...)

Speicherbelegung unter C





Frage

Hallo, kann mir vielleicht jemand erklären warum C bei der Vereinbarung eines Integerwertes in einer Struktur ein Byte mehr Platz beansprucht als es eigentlich sollte ????? #include <stdio.h> typedef struct { long integer; char string1[5]; char string2[7]; char string3[3]; } STINTVORNE; main () { printf ("SizeOf von Integer : %d\n", sizeof (intvorne.integer)); printf ("SizeOf von String1 : %d\n", sizeof (intvorne.string1)); printf ("SizeOf von String2 : %d\n", sizeof (intvorne.string2)); printf ("SizeOf von String3 : %d\n", sizeof (intvorne.string3)); printf ("SizeOf von STINTVORNE : %d\n", sizeof (STINTVORNE)); }

Antwort 1 von AnPapaSeiBua

Die Größe von Strukturen wird bei 32-Bit-System auf ein Vielfaches von 4 Byte gesetzt. Deine Struktur hätte 19 Byte, also wird auf 20 aufgerundet. 32-Bit-Prozessoren können auf diese Adressen schneller zugreifen.

MfG
Jürgen

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: