<?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[Speicherbedarf prim. Typen unklar]]></title><description><![CDATA[<p>Seid gegrüsst,<br />
ich bin noch ein echter Frischling und arbeite mich gerade durch diverse Bücher durch.</p>
<p>Ich wollte mir einmal die Speicherposition zweier short int-Werte ansehen und habe die Differenz der Speicherpositionen mit der Menge an Speicher verglichen, die für short int reserviert wird.<br />
Und das Ergebniss verwirrt mich ein wenig.</p>
<pre><code class="language-cpp">short i = 1, j = 1;
cout&lt;&lt;&amp;i&lt;&lt;endl;
cout&lt;&lt;&amp;j&lt;&lt;endl;
cout&lt;&lt;&quot;Speicherbedarf fuer short: &quot;&lt;&lt;sizeof(short)&lt;&lt;&quot;bytes&quot;;
</code></pre>
<p>liefert mir folgende Ausgabe:</p>
<pre><code>003BF860
003BF854
Speicherbedarf fuer short: 2bytes
</code></pre>
<p>Nun frage ich mich warum offenbar 6bytes reserviert wurden.</p>
<p>Schreibe ich es hingegen folgendermassen:</p>
<pre><code class="language-cpp">short arr [] = {1,1};
short * p = arr;
cout&lt;&lt;p&lt;&lt;endl;
p++;
cout&lt;&lt;p&lt;&lt;endl;
</code></pre>
<p>so erhalte ich die erwartete Ausgabe:</p>
<pre><code>003FF720
003FF722
</code></pre>
<p>Könnte mir das jmd kurz erläutern?<br />
Ich bedanke mich schonmal für Antworten.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/273081/speicherbedarf-prim-typen-unklar</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 07:46:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/273081.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 30 Aug 2010 21:29:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Speicherbedarf prim. Typen unklar on Mon, 30 Aug 2010 21:30:00 GMT]]></title><description><![CDATA[<p>Seid gegrüsst,<br />
ich bin noch ein echter Frischling und arbeite mich gerade durch diverse Bücher durch.</p>
<p>Ich wollte mir einmal die Speicherposition zweier short int-Werte ansehen und habe die Differenz der Speicherpositionen mit der Menge an Speicher verglichen, die für short int reserviert wird.<br />
Und das Ergebniss verwirrt mich ein wenig.</p>
<pre><code class="language-cpp">short i = 1, j = 1;
cout&lt;&lt;&amp;i&lt;&lt;endl;
cout&lt;&lt;&amp;j&lt;&lt;endl;
cout&lt;&lt;&quot;Speicherbedarf fuer short: &quot;&lt;&lt;sizeof(short)&lt;&lt;&quot;bytes&quot;;
</code></pre>
<p>liefert mir folgende Ausgabe:</p>
<pre><code>003BF860
003BF854
Speicherbedarf fuer short: 2bytes
</code></pre>
<p>Nun frage ich mich warum offenbar 6bytes reserviert wurden.</p>
<p>Schreibe ich es hingegen folgendermassen:</p>
<pre><code class="language-cpp">short arr [] = {1,1};
short * p = arr;
cout&lt;&lt;p&lt;&lt;endl;
p++;
cout&lt;&lt;p&lt;&lt;endl;
</code></pre>
<p>so erhalte ich die erwartete Ausgabe:</p>
<pre><code>003FF720
003FF722
</code></pre>
<p>Könnte mir das jmd kurz erläutern?<br />
Ich bedanke mich schonmal für Antworten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1946326</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1946326</guid><dc:creator><![CDATA[inter2k3]]></dc:creator><pubDate>Mon, 30 Aug 2010 21:30:00 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherbedarf prim. Typen unklar on Mon, 30 Aug 2010 21:59:41 GMT]]></title><description><![CDATA[<p>Es ist vom C++-Standard nicht vorgegeben, wie die shorts auf dem Stack angelegt werden. Dies hängt von deinem Compiler ab. Deshalb solltest du diesbezüglich auch keine Annahmen treffen. Bei Arrays hingegen ist lineares sukzessives Speicherlayout garantiert.</p>
<p>Übrigens: 0x003BF860-0x003BF854 ist 12 und nicht 6.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1946327</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1946327</guid><dc:creator><![CDATA[fischling]]></dc:creator><pubDate>Mon, 30 Aug 2010 21:59:41 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherbedarf prim. Typen unklar on Mon, 30 Aug 2010 21:59:51 GMT]]></title><description><![CDATA[<p>Bei einem 32 Bit System wird in der Regel auf 4 Byte Grenzen ausgerichtet (Alignment). Man liest nämlich mit einem Befehl 4 Byte aus dem Speicher, und wenn nun der gewünschte Wert in den oberen 16 Bit liegt, muss dieser erst runtergeschoben werden. Also lässt man die oberen 16 bit einfach frei und fängt wieder an die unteren zu füllen. Das ist zwar Platzverschwendung, aber es ist schneller.</p>
<p>Das ist bei den Elementen einer classe/struct auch so. Arrays sind da ein Sonderfall, da garantiert wird das die Werte direkt hinternander im Speicher liegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1946328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1946328</guid><dc:creator><![CDATA[Tobiking2]]></dc:creator><pubDate>Mon, 30 Aug 2010 21:59:51 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherbedarf prim. Typen unklar on Mon, 30 Aug 2010 22:19:15 GMT]]></title><description><![CDATA[<p>Sorry wegen OT, aber...</p>
<p>Tobiking2 schrieb:</p>
<blockquote>
<p>classe</p>
</blockquote>
<p>Nachdem ich das jetzt schon öfter hier gelesen habe (weiss nicht mehr von wem sonst noch), eine Frage: ist das Absicht, Unwissenheit oder Verwirrtheit in Kombination mit Wurschtigkeit?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1946332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1946332</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 30 Aug 2010 22:19:15 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherbedarf prim. Typen unklar on Mon, 30 Aug 2010 23:59:50 GMT]]></title><description><![CDATA[<p>Wurschtigkeit trifft es ganz gut. Ich geh meistens nach dem Schreiben nochmal durch den Text, um Begriffe einheitlicher zu machen. Beim Ändern von Klasse in class ist dann wohl das e stehen geblieben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1946338</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1946338</guid><dc:creator><![CDATA[Tobiking2]]></dc:creator><pubDate>Mon, 30 Aug 2010 23:59:50 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherbedarf prim. Typen unklar on Tue, 31 Aug 2010 02:57:51 GMT]]></title><description><![CDATA[<p>inter2k3 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">short i = 1, j = 1;
cout&lt;&lt;&amp;i&lt;&lt;endl;
cout&lt;&lt;&amp;j&lt;&lt;endl;
cout&lt;&lt;&quot;Speicherbedarf fuer short: &quot;&lt;&lt;sizeof(short)&lt;&lt;&quot;bytes&quot;;
</code></pre>
<p>liefert mir folgende Ausgabe:</p>
<pre><code>003BF860
003BF854
Speicherbedarf fuer short: 2bytes
</code></pre>
<p>Nun frage ich mich warum offenbar 6bytes reserviert wurden.</p>
</blockquote>
<p>Wie schon gesagt: Der C++ Standard macht hier keine Garantien. Etwas vorhersagbarer wird das, wenn du die zwei shorts in ein struct packst.</p>
<pre><code class="language-cpp">struct blah {
  short i;
  short j;
};
</code></pre>
<p>Zumindest ist die Reihenfolge im Speicher der Datenelemente einer Gruppe von Elementen mit denselben Zugriffsrechten festgelegt. Trotzdem kann sizeof(blah)&gt;sizeof(short)*2 sein (&quot;padding&quot;, &quot;alignment&quot;). Noch vorhersagbarer wird es mit einem short-Array, also short[2].</p>
<p>Wie schon gesagt: 0x...60 - 0x...54 = 0xC, also 12</p>
<p>Falls Du Dein Programm im Debug-Modus kompiliert hast, könnte es sein, dass der Compiler absichtlich den Stack mit einem bestimmten Muster (&quot;canary words&quot;) auffüllt, so dass beim Verlassen der Funktion überprüft werden kann, ob dieses Muster noch vorhanden ist (<a href="http://en.wikipedia.org/wiki/Buffer_overflow_protection#Canaries" rel="nofollow">Stack protection</a>).</p>
<p>kk</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1946346</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1946346</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Tue, 31 Aug 2010 02:57:51 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherbedarf prim. Typen unklar on Tue, 31 Aug 2010 04:11:38 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Tobiking2 schrieb:</p>
<blockquote>
<p>classe</p>
</blockquote>
<p>Nachdem ich das jetzt schon öfter hier gelesen habe (weiss nicht mehr von wem sonst noch), eine Frage: ist das Absicht, Unwissenheit oder Verwirrtheit in Kombination mit Wurschtigkeit?</p>
</blockquote>
<p>Schön, dass ich nicht der Einzige bin, den das irgendwie nervt. <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="😉"
    /> Das sieht man sehr oft hier (auch compilieren o.ä.).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1946351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1946351</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Tue, 31 Aug 2010 04:11:38 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherbedarf prim. Typen unklar on Tue, 31 Aug 2010 14:37:29 GMT]]></title><description><![CDATA[<p>_matze schrieb:</p>
<blockquote>
<p>Das sieht man sehr oft hier (auch compilieren o.ä.).</p>
</blockquote>
<p>Hingegen finde ich Ausdrücke wie &quot;Kompiler&quot; auch unschön. Erstaunlich ist, wie oft ich in diesem Forum schon &quot;komplimieren&quot; gesehen habe. <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/1946601</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1946601</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 31 Aug 2010 14:37:29 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherbedarf prim. Typen unklar on Sat, 04 Sep 2010 00:43:33 GMT]]></title><description><![CDATA[<p>_matze schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Tobiking2 schrieb:</p>
<blockquote>
<p>classe</p>
</blockquote>
<p>Nachdem ich das jetzt schon öfter hier gelesen habe (weiss nicht mehr von wem sonst noch), eine Frage: ist das Absicht, Unwissenheit oder Verwirrtheit in Kombination mit Wurschtigkeit?</p>
</blockquote>
<p>Schön, dass ich nicht der Einzige bin, den das irgendwie nervt. <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="😉"
    /> Das sieht man sehr oft hier (auch compilieren o.ä.).</p>
</blockquote>
<p>Hihi, compilieren schreib' ich selber oft <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="😃"
    /></p>
<p>Und Kompiler geht schon garnicht. Sagt ja auch keiner, also KompIler, sagt jeder KompEIler und dann müsste man es auch so schreiben, ne <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/1948025</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1948025</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 04 Sep 2010 00:43:33 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherbedarf prim. Typen unklar on Sat, 04 Sep 2010 01:14:34 GMT]]></title><description><![CDATA[<p>Für &quot;Kompilator&quot; hätte ich noch Verständnis.</p>
<p>Manchmal führt die Vorherrschaft englischer Fachbegriffe halt zu merkwürdigen Eindeutschungen - insbesondere bei Verben. &quot;Compiler&quot; ist direkt verwendbar, aber will man etwas &quot;compilen&quot;, so klingt das doch etwas seltsam. Vielleicht läuft etwas nicht mehr, nachdem man den Compiler geupdatet hat - oder doch eher upgedatet? Hat man eine Klasse beim letzten Refactoring jetzt templatet, templated oder templatisiert?</p>
<p>Ich bezweifle, dass der Duden diese Problematik in absehbarer Zeit behandeln wird, also ist es schwierig, sich hier auf eine Rechtschreibregelung zu berufen. Gelegentlich werden wir alle Wortformen lesen, die uns höchst suspekt vorkommen, und solche verwenden, die andere für absolut unmöglich halten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1948027</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1948027</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Sat, 04 Sep 2010 01:14:34 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherbedarf prim. Typen unklar on Sat, 04 Sep 2010 02:40:09 GMT]]></title><description><![CDATA[<p>Ja hast schon Recht. Ich verwende selbst öfter mal fragwürdige Wortkreationen.<br />
Will das auch gar nicht weiter breit reden, is nur so dass ich mir echt nicht erklären konnte wie man auf &quot;classe&quot; kommt.</p>
<p>Die Erklärung von Tobiking2 ist allerdings einleuchtend, und damit kann ich auch gut leben <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="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1948031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1948031</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 04 Sep 2010 02:40:09 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherbedarf prim. Typen unklar on Sat, 04 Sep 2010 06:12:49 GMT]]></title><description><![CDATA[<p>Wat denn nu?<br />
Compiler oder<br />
Kompiler oder<br />
Übersetzungsteil oder<br />
translation unit <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Ist eine Sprache bei der sich nix mehr tut nicht eine tote Sprache?</p>
<p>Meiner unmaszgeblichen Meinung dürfen in Maszen da Abweichungen sein.</p>
<p>Bei diesem Text sind Abweichungen von der Rechtschreibung nicht immer unbeabsichtigt.</p>
<p>Wie heiszt es so schön auf denglish - nun ist der Beitrag out off topig, topik oder topic <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="😉"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1948035</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1948035</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Sat, 04 Sep 2010 06:12:49 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherbedarf prim. Typen unklar on Sat, 04 Sep 2010 10:52:47 GMT]]></title><description><![CDATA[<p>Naja, jetzt ist das Leben einer Sprache keine Entschuldigung für völlige Anarchie in Rechtschreibung und Grammatik. Irgendwo muss man sich doch gegenseitig noch verstehen können, und es ist sehr hilfreich, wenn man sich nicht erst aus dem Kontext zusammenreimen muss, welches Wort der andere gerade meint oder ausgelassen hat.</p>
<p>Ansonsten hab ich &quot;out off&quot; noch nirgends zuvor gesehen. Du kannst &quot;out of ideas&quot; sein oder &quot;off topic&quot;. <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="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1948078</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1948078</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Sat, 04 Sep 2010 10:52:47 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherbedarf prim. Typen unklar on Sat, 04 Sep 2010 11:28:02 GMT]]></title><description><![CDATA[<p>f.-th. schrieb:</p>
<blockquote>
<p>Compiler oder<br />
Kompiler oder</p>
</blockquote>
<p>Ich bin voll für<br />
&quot;Man kompil0rt mit einem Kompil0r0r&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1948080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1948080</guid><dc:creator><![CDATA[l33t0r0r]]></dc:creator><pubDate>Sat, 04 Sep 2010 11:28:02 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherbedarf prim. Typen unklar on Sat, 04 Sep 2010 16:30:11 GMT]]></title><description><![CDATA[<p>Primitive Typen kenn ich genug - aussem Real Life <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1948143</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1948143</guid><dc:creator><![CDATA[primitiv0r]]></dc:creator><pubDate>Sat, 04 Sep 2010 16:30:11 GMT</pubDate></item></channel></rss>