<?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[Structanordnung fehlerhaft]]></title><description><![CDATA[<p>Nabend.</p>
<p>Habe folgendes Problem ... betrachten wir erst mal ne vereinfachte Form meines Sourcecodes:</p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;
#include &lt;windows.h&gt;

struct test
{
	BYTE x1;
	DWORD x2;
};

int main( void )
{
	BYTE byteArr[] = { 0x10, 0x11, 0x12, 0x13, 0x14 };

	test *tStruct = ( test * )byteArr;

	printf( &quot;x1: %X\nx2: %X\n\n&quot;, tStruct-&gt;x1, tStruct-&gt;x2 );

	system( &quot;pause&quot; );

	return 0;
};
</code></pre>
<p>Erwartete Ausgabe wäre nach meinem Erachten folgende:</p>
<pre><code>x1: 10
x2: 14131211

Drücken Sie eine beliebige Taste . . .
</code></pre>
<p>Leider bekomme ich nur folgendes:</p>
<pre><code>x1: 10
x2: CCCCCC14

Drücken Sie eine beliebige Taste . . .
</code></pre>
<p>Als ich den ganzen Kram noch etwas komplexer in meinem eigentlichen Sourcecode hatte, dachte ich, es läge an dem BYTE-Array, was ich bis dahin noch nutze.</p>
<p>Erst die vereinfachte Form zeigt mir, dass ich irgendwas übersehe...</p>
<p>Hat jemand ne Idee?</p>
<p>Wäre echt dankbar!!</p>
<p>Gruß, paSe</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/231668/structanordnung-fehlerhaft</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 19:45:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/231668.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 13 Jan 2009 23:40:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Structanordnung fehlerhaft on Tue, 13 Jan 2009 23:40:04 GMT]]></title><description><![CDATA[<p>Nabend.</p>
<p>Habe folgendes Problem ... betrachten wir erst mal ne vereinfachte Form meines Sourcecodes:</p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;
#include &lt;windows.h&gt;

struct test
{
	BYTE x1;
	DWORD x2;
};

int main( void )
{
	BYTE byteArr[] = { 0x10, 0x11, 0x12, 0x13, 0x14 };

	test *tStruct = ( test * )byteArr;

	printf( &quot;x1: %X\nx2: %X\n\n&quot;, tStruct-&gt;x1, tStruct-&gt;x2 );

	system( &quot;pause&quot; );

	return 0;
};
</code></pre>
<p>Erwartete Ausgabe wäre nach meinem Erachten folgende:</p>
<pre><code>x1: 10
x2: 14131211

Drücken Sie eine beliebige Taste . . .
</code></pre>
<p>Leider bekomme ich nur folgendes:</p>
<pre><code>x1: 10
x2: CCCCCC14

Drücken Sie eine beliebige Taste . . .
</code></pre>
<p>Als ich den ganzen Kram noch etwas komplexer in meinem eigentlichen Sourcecode hatte, dachte ich, es läge an dem BYTE-Array, was ich bis dahin noch nutze.</p>
<p>Erst die vereinfachte Form zeigt mir, dass ich irgendwas übersehe...</p>
<p>Hat jemand ne Idee?</p>
<p>Wäre echt dankbar!!</p>
<p>Gruß, paSe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1644990</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1644990</guid><dc:creator><![CDATA[unlimieD.paSe]]></dc:creator><pubDate>Tue, 13 Jan 2009 23:40:04 GMT</pubDate></item><item><title><![CDATA[Reply to Structanordnung fehlerhaft on Tue, 13 Jan 2009 23:41:32 GMT]]></title><description><![CDATA[<p>Padding <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1644992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1644992</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Tue, 13 Jan 2009 23:41:32 GMT</pubDate></item><item><title><![CDATA[Reply to Structanordnung fehlerhaft on Wed, 14 Jan 2009 00:05:05 GMT]]></title><description><![CDATA[<p>Padding? ^^</p>
<p>Meinst du ich soll das mit memset auf 0 setzen?</p>
<p>Edit:</p>
<p>Oder meinst du, dass ich hinter die 0x10 3 mal 0x0 quetschen muss, weil DWORD 4*8 BYTE groß ist und demnach in 4er Schritten einliest?</p>
<p>Das würde dann evtl erklären wieso ich bei</p>
<pre><code class="language-cpp">BYTE byteArr[9] = { 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 };
</code></pre>
<p>so eine Ausgabe bekomme:</p>
<pre><code>x1: 10
x2: 17161514

Drücken Sie eine beliebige Taste . . .
</code></pre>
<p>... kann mir das aber eigentlich nicht vorstellen.</p>
<p>Das muss auch anders gehen die 11 - 14 in DWORD zu quetschen ohne das mit Nullen aufzufüllen nur damits jeweils 4 BYTE sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1644994</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1644994</guid><dc:creator><![CDATA[unlimieD.paSe]]></dc:creator><pubDate>Wed, 14 Jan 2009 00:05:05 GMT</pubDate></item><item><title><![CDATA[Reply to Structanordnung fehlerhaft on Wed, 14 Jan 2009 00:12:10 GMT]]></title><description><![CDATA[<p>Entschuldige, ich war ein wenig wortkarg <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> Ich meine, dass die BYTE-Variable in deiner Struktur wahrscheinlich durch Padding 4 Bytes an Platz beansprucht. Als Lösung könntest du die Reihenfolge der Variablen umtauschen, für die Struktur Padding per Compiler-Schalter ausschalten oder dich damit abfinden.<br />
Übrigens gibt's sogar nen Wikipedia-Artikel zu &quot;Padding&quot; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1645003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1645003</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Wed, 14 Jan 2009 00:12:10 GMT</pubDate></item><item><title><![CDATA[Reply to Structanordnung fehlerhaft on Wed, 14 Jan 2009 00:16:10 GMT]]></title><description><![CDATA[<p>Na Ahnung wo ich das in VS 05/08 abschalte?</p>
<p>Ich nehme an in den Projekteigenschaften?</p>
<p>Die Reihenfolge kann ich leider nicht ändern, da das BYTE-Array empfangene Datenpackete sind und die Struktur vom Server vorgegeben ist. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1645005</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1645005</guid><dc:creator><![CDATA[unlimieD.paSe]]></dc:creator><pubDate>Wed, 14 Jan 2009 00:16:10 GMT</pubDate></item><item><title><![CDATA[Reply to Structanordnung fehlerhaft on Wed, 14 Jan 2009 00:19:22 GMT]]></title><description><![CDATA[<p>unlimieD.paSe schrieb:</p>
<blockquote>
<p>Na Ahnung wo ich das in VS 05/08 abschalte?</p>
</blockquote>
<p>Ich glaube, es war sowas wie &quot;pragma pack&quot;.<br />
edit: Hinter &quot;pragma pack&quot; kommt noch ein Parameter, frag einfach mal Google.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1645006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1645006</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Wed, 14 Jan 2009 00:19:22 GMT</pubDate></item><item><title><![CDATA[Reply to Structanordnung fehlerhaft on Wed, 14 Jan 2009 00:22:06 GMT]]></title><description><![CDATA[<p>Danke!</p>
<p>Edit: #pragma pack(push, 1)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1645007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1645007</guid><dc:creator><![CDATA[unlimieD.paSe]]></dc:creator><pubDate>Wed, 14 Jan 2009 00:22:06 GMT</pubDate></item><item><title><![CDATA[Reply to Structanordnung fehlerhaft on Wed, 14 Jan 2009 08:30:10 GMT]]></title><description><![CDATA[<p>Und nicht vergessen wieder anzuschalten:</p>
<pre><code class="language-cpp">#pragma pack(pop)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1645078</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1645078</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Wed, 14 Jan 2009 08:30:10 GMT</pubDate></item><item><title><![CDATA[Reply to Structanordnung fehlerhaft on Wed, 14 Jan 2009 11:54:30 GMT]]></title><description><![CDATA[<p>David_pb schrieb:</p>
<blockquote>
<p>Und nicht vergessen wieder anzuschalten:</p>
</blockquote>
<p>Du meinst sicher a<strong>b</strong>zuschalten. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Aber man sollte daran denken, dass <code>#pragma</code> -Direktiven womöglich nicht mehr funktionieren, wenn man sie auf einen anderen Compiler portiert. Wobei bei einem sinnvollen Compiler (genauer gesagt Präprozessor) eine Warnung entstehen sollte, wenn das <code>#pragma</code> unbekannt ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1645237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1645237</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 14 Jan 2009 11:54:30 GMT</pubDate></item><item><title><![CDATA[Reply to Structanordnung fehlerhaft on Wed, 14 Jan 2009 11:57:51 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>David_pb schrieb:</p>
<blockquote>
<p>Und nicht vergessen wieder anzuschalten:</p>
</blockquote>
<p>Du meinst sicher a<strong>b</strong>zuschalten. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Kommt auf den Blickwinkel an! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1645242</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1645242</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Wed, 14 Jan 2009 11:57:51 GMT</pubDate></item></channel></rss>