<?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[Speicherverschwendung umgehen]]></title><description><![CDATA[<p>mir sind in C++ zwei stellen aufgefallen, wo extrem viel Speicher verschwendet wird.</p>
<ol>
<li></li>
</ol>
<p>Array aus bool Variablen. Der kleinste adressierbare Speicher ist ja 1 byte, obwohl hier nur das erste bit gebraucht wird. Legt man aber ein Array an, so Vermehrt sich der Verschwendete Speicher dem entsprechend. Wie ist die Beste möglichkeit diese Verschwendung entgegenzukommen?</p>
<ol start="2">
<li></li>
</ol>
<p>ein enum belegt immer 16/32/64 bit (integer größe). Die Platzverschwendung kommt hier auch erst richtig zur geltung, wenn man ein 64 bit Prozessor hat, und ein Feld dieser enums anlegt. Ich persönlich hab noch nie ein enum mit mehr als 256 einträgen gesehen, also wiso wird da so viel Platz veschenkt, der nie gebraucht wird? Kann man irgendwie auch die enums so ändern, dass sie nurnoch ein byte belegen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/154748/speicherverschwendung-umgehen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 00:33:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/154748.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 30 Jul 2006 11:53:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Speicherverschwendung umgehen on Sun, 30 Jul 2006 11:53:58 GMT]]></title><description><![CDATA[<p>mir sind in C++ zwei stellen aufgefallen, wo extrem viel Speicher verschwendet wird.</p>
<ol>
<li></li>
</ol>
<p>Array aus bool Variablen. Der kleinste adressierbare Speicher ist ja 1 byte, obwohl hier nur das erste bit gebraucht wird. Legt man aber ein Array an, so Vermehrt sich der Verschwendete Speicher dem entsprechend. Wie ist die Beste möglichkeit diese Verschwendung entgegenzukommen?</p>
<ol start="2">
<li></li>
</ol>
<p>ein enum belegt immer 16/32/64 bit (integer größe). Die Platzverschwendung kommt hier auch erst richtig zur geltung, wenn man ein 64 bit Prozessor hat, und ein Feld dieser enums anlegt. Ich persönlich hab noch nie ein enum mit mehr als 256 einträgen gesehen, also wiso wird da so viel Platz veschenkt, der nie gebraucht wird? Kann man irgendwie auch die enums so ändern, dass sie nurnoch ein byte belegen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107094</guid><dc:creator><![CDATA[Krux]]></dc:creator><pubDate>Sun, 30 Jul 2006 11:53:58 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherverschwendung umgehen on Sun, 30 Jul 2006 12:12:28 GMT]]></title><description><![CDATA[<p>ad 1: Du schreibst dir 'ne eigene Klasse als repräsentation eines <em>bool</em>-Arrays und verwendest jedes Bit deiner Daten als einen <em>bool</em>.</p>
<p>ad 2: Nein.</p>
<p>Greetz, Swordfish</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107110</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107110</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Sun, 30 Jul 2006 12:12:28 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherverschwendung umgehen on Sun, 30 Jul 2006 12:33:05 GMT]]></title><description><![CDATA[<p>Bei dem, was in heutigen Rechnern an Speicher steckt, ist es i. d. R. egal, ob<br />
hier und da ein paar Byte &quot;verschwendet&quot; werden. Schon vor dem Hintergrund, dass<br />
die Speicherverwaltung vom OS einem Programm sowieso nur Speicher in fest<br />
definierter Größe (zu Portionen von z.B. 4KB, Stichworte: Paging, virtual<br />
memory) zuweisen kann. Und dann ist es eh egal, ob dein Prog. davon nur 20 Byte<br />
wirklich braucht, oder mal eben so ein paar 100 &quot;verschwendet&quot;.</p>
<p>Ausserdem heisst enum ja nicht unbedingt, dass es bei 0 zu zählen anfangen muss.<br />
Denkbar wäre es auch denkbar, irgendwelche Bitmasken abzulegen</p>
<pre><code class="language-cpp">typedef enum
{
FOO = 0xFF00FF00,
BAR,
FOOBAR
}masks;
</code></pre>
<p>Sind nur 3 Konstanten, es werden aber trotzdem jeweils 32 Bit benötigt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107116</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107116</guid><dc:creator><![CDATA[anonymus]]></dc:creator><pubDate>Sun, 30 Jul 2006 12:33:05 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherverschwendung umgehen on Sun, 30 Jul 2006 12:38:47 GMT]]></title><description><![CDATA[<p>Swordfish schrieb:</p>
<blockquote>
<p>ad 1: Du schreibst dir 'ne eigene Klasse als repräsentation eines <em>bool</em>-Arrays und verwendest jedes Bit deiner Daten als einen <em>bool</em>.</p>
</blockquote>
<p>Oder man nimmt einfach std::vector&lt;bool&gt;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107117</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107117</guid><dc:creator><![CDATA[Walli]]></dc:creator><pubDate>Sun, 30 Jul 2006 12:38:47 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherverschwendung umgehen on Sun, 30 Jul 2006 12:48:04 GMT]]></title><description><![CDATA[<p>Swordfish schrieb:</p>
<blockquote>
<p>ad 1: Du schreibst dir 'ne eigene Klasse als repräsentation eines <em>bool</em>-Arrays und verwendest jedes Bit deiner Daten als einen <em>bool</em>.</p>
</blockquote>
<p>Dafür gibts <a href="http://cppreference.com/cppbitset/index.html" rel="nofollow">Bitsets</a>.</p>
<p>std::vector&lt;bool&gt; ist zwar auch für diesen Fall spezialisiert, allerdings saulahm.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107133</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107133</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Sun, 30 Jul 2006 12:48:04 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherverschwendung umgehen on Sun, 30 Jul 2006 13:18:40 GMT]]></title><description><![CDATA[<p>@ Walli &amp; Michael E.: *mich_am_kopf_kratz* *kopf_auf_schreibtisch_schleuder* ... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
<p>Greetz, Swordfish</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107147</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107147</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Sun, 30 Jul 2006 13:18:40 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherverschwendung umgehen on Sun, 30 Jul 2006 13:19:57 GMT]]></title><description><![CDATA[<p>Swordfish schrieb:</p>
<blockquote>
<p>@ Walli &amp; Michael E.: *mich_am_kopf_kratz* *kopf_auf_schreibtisch_schleuder* ... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
<p>Greetz, Swordfish</p>
</blockquote>
<p>SCNR:</p>
<p>&lt;nelson&gt; haha &lt;/nelson&gt;</p>
<p>:p <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>
<p>BR<br />
Vinzenz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107150</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107150</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Sun, 30 Jul 2006 13:19:57 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherverschwendung umgehen on Sun, 30 Jul 2006 13:35:33 GMT]]></title><description><![CDATA[<p>nelson?</p>
<p>Greetz, Swordfish</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107160</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107160</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Sun, 30 Jul 2006 13:35:33 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherverschwendung umgehen on Sun, 30 Jul 2006 13:37:14 GMT]]></title><description><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Nelson_Muntz" rel="nofollow">http://en.wikipedia.org/wiki/Nelson_Muntz</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107161</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Sun, 30 Jul 2006 13:37:14 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherverschwendung umgehen on Sun, 30 Jul 2006 14:00:59 GMT]]></title><description><![CDATA[<p>Ah, danke! (Mann bin ich blöd.)</p>
<p>Greetz, Swordfish</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107172</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Sun, 30 Jul 2006 14:00:59 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherverschwendung umgehen on Sun, 30 Jul 2006 15:27:18 GMT]]></title><description><![CDATA[<p>Enums sind sowieso keine Speicherverschwendung.<br />
Sie verbrauchen ja keinen dynamischen Speicher, da die Werte im binary stehen.<br />
Bei einer Zuweisung bleibt es ja dir überlassen welchem Typ du das enum zuweist.</p>
<pre><code class="language-cpp">char value = ENUM_VALUE;
int intValue = ENUM_VALUE;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1107211</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107211</guid><dc:creator><![CDATA[templäd]]></dc:creator><pubDate>Sun, 30 Jul 2006 15:27:18 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherverschwendung umgehen on Sun, 30 Jul 2006 15:54:02 GMT]]></title><description><![CDATA[<p>du meinst also ich kann wenn ich ein enum {OBEN,UNTEN,LINKS,RECHTS}; hab, auf einen char LINKS zuweisen. also:<br />
char a = LINKS; oder hab ich das jetzt falsch verstanden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107231</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107231</guid><dc:creator><![CDATA[Krux]]></dc:creator><pubDate>Sun, 30 Jul 2006 15:54:02 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherverschwendung umgehen on Sun, 30 Jul 2006 15:56:16 GMT]]></title><description><![CDATA[<p>Ja. Wie sinnvoll das allerdings ist, sei mal dahingestellt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107235</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107235</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Sun, 30 Jul 2006 15:56:16 GMT</pubDate></item></channel></rss>