<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Grundlagenforschung: struct und sizeof]]></title><description><![CDATA[<p>Hallo Leute, ich muss mal wieder ein paar Grundlagen nachholen.<br />
Es geht um die größe eines Struct.</p>
<pre><code class="language-cpp">struct bla{
	char la[21];
	int io;
	char le[21];

	};
int erg= sizeof( bla);
int groesse = sizeof (int);
</code></pre>
<p><strong>erg</strong> ergibt dabei 52 und <strong>groesse</strong> 4.<br />
Jetzt hat aber ein int 4 Bytes und ich reserviere 2x ein char Array mit jeweils 21 Bytes = 42.<br />
42 + 4 ergibt aber 46.<br />
Warum ist die größe des struct dann 52?</p>
<p>Lasse ich den int weg, also:</p>
<pre><code class="language-cpp">struct bla{
	char la[21];

	char le[21];

	};
int erg= sizeof( bla);
int groesse = sizeof (int);
</code></pre>
<p>Ergibt <strong>erg</strong> 42 wie es sein soll.</p>
<p>Warum ergibt das 1. Beispiel 52? WO kommen die 6 Bytes her?</p>
<p>Danke Mondmann</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/217109/grundlagenforschung-struct-und-sizeof</link><generator>RSS for Node</generator><lastBuildDate>Sat, 10 Oct 2026 21:06:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/217109.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 03 Jul 2008 07:36:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Grundlagenforschung: struct und sizeof on Thu, 03 Jul 2008 07:36:46 GMT]]></title><description><![CDATA[<p>Hallo Leute, ich muss mal wieder ein paar Grundlagen nachholen.<br />
Es geht um die größe eines Struct.</p>
<pre><code class="language-cpp">struct bla{
	char la[21];
	int io;
	char le[21];

	};
int erg= sizeof( bla);
int groesse = sizeof (int);
</code></pre>
<p><strong>erg</strong> ergibt dabei 52 und <strong>groesse</strong> 4.<br />
Jetzt hat aber ein int 4 Bytes und ich reserviere 2x ein char Array mit jeweils 21 Bytes = 42.<br />
42 + 4 ergibt aber 46.<br />
Warum ist die größe des struct dann 52?</p>
<p>Lasse ich den int weg, also:</p>
<pre><code class="language-cpp">struct bla{
	char la[21];

	char le[21];

	};
int erg= sizeof( bla);
int groesse = sizeof (int);
</code></pre>
<p>Ergibt <strong>erg</strong> 42 wie es sein soll.</p>
<p>Warum ergibt das 1. Beispiel 52? WO kommen die 6 Bytes her?</p>
<p>Danke Mondmann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1540205</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1540205</guid><dc:creator><![CDATA[Mondmann]]></dc:creator><pubDate>Thu, 03 Jul 2008 07:36:46 GMT</pubDate></item><item><title><![CDATA[Reply to Grundlagenforschung: struct und sizeof on Thu, 03 Jul 2008 07:40:50 GMT]]></title><description><![CDATA[<p>Les Dir mal diesen Artikel durch: <a href="http://en.wikipedia.org/wiki/Byte_alignment" rel="nofollow">Alignment</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1540211</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1540211</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Thu, 03 Jul 2008 07:40:50 GMT</pubDate></item><item><title><![CDATA[Reply to Grundlagenforschung: struct und sizeof on Thu, 03 Jul 2008 13:20:23 GMT]]></title><description><![CDATA[<p>Also macht das oben keinen Sinn, sondern eher:</p>
<pre><code class="language-cpp">struct bla
{
  char la[24];
  char le[24];
  int io;
};

int erg     = sizeof(bla);
int groesse = sizeof(int);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1540434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1540434</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Thu, 03 Jul 2008 13:20:23 GMT</pubDate></item><item><title><![CDATA[Reply to Grundlagenforschung: struct und sizeof on Fri, 04 Jul 2008 06:07:46 GMT]]></title><description><![CDATA[<p>für den schnelleren Zugriff wird der Speicher in 4 Byte-Blöcke unterteilt. d.h. man reserviert ein Byte, es werden aber trotzdem 32 Bit reserviert. die nächste Variablen kann dann wieder sehr einfach angesprochen und ausgelesen werden.<br />
Bei Arrays wird zwar nur ein Byte pro char reserviert, das Ende des Arrays wird aber wieder um 4 Byte aufgefüllt.</p>
<p>Man kann dies über eine Compiler-Option auch Abschalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1540751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1540751</guid><dc:creator><![CDATA[DocJunioR]]></dc:creator><pubDate>Fri, 04 Jul 2008 06:07:46 GMT</pubDate></item><item><title><![CDATA[Reply to Grundlagenforschung: struct und sizeof on Fri, 04 Jul 2008 08:11:54 GMT]]></title><description><![CDATA[<p>ot: bitte setz den leuten keine flausen in den kopf, dass das allignment immer auf 4byte basis geschieht. es ist systemabhängig. will heißen, dass je nach architektur das speichersystems und des prozessors als werte 1 (also kein alignment), 2, 4, 8 oder gar 16byte möglich sind. mehr als 16byte sind auch denkbar, aber zur zeit nach meinem wissen noch in keinem system vorhanden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1540837</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1540837</guid><dc:creator><![CDATA[ghorst]]></dc:creator><pubDate>Fri, 04 Jul 2008 08:11:54 GMT</pubDate></item></channel></rss>