<?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[bool initialisieren mit memset]]></title><description><![CDATA[<p>Was spricht gegen so ein Vorgehen um beim init alles auf false zu setzen? Oder sollte man eine Schleife Verwenden?</p>
<pre><code class="language-cpp">bool array[10000];
memset(&amp;array, 0, 10000 * sizeof(bool));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/272474/bool-initialisieren-mit-memset</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 22:12:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/272474.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 18 Aug 2010 09:56:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to bool initialisieren mit memset on Wed, 18 Aug 2010 09:56:25 GMT]]></title><description><![CDATA[<p>Was spricht gegen so ein Vorgehen um beim init alles auf false zu setzen? Oder sollte man eine Schleife Verwenden?</p>
<pre><code class="language-cpp">bool array[10000];
memset(&amp;array, 0, 10000 * sizeof(bool));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1941393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1941393</guid><dc:creator><![CDATA[bool_]]></dc:creator><pubDate>Wed, 18 Aug 2010 09:56:25 GMT</pubDate></item><item><title><![CDATA[Reply to bool initialisieren mit memset on Wed, 18 Aug 2010 10:02:42 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">std::bitset&lt;10000&gt; array(0);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1941400</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1941400</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Wed, 18 Aug 2010 10:02:42 GMT</pubDate></item><item><title><![CDATA[Reply to bool initialisieren mit memset on Wed, 18 Aug 2010 10:06:16 GMT]]></title><description><![CDATA[<p>Fellhuhn schrieb:</p>
<blockquote>
<pre><code class="language-cpp">std::bitset&lt;10000&gt; array(0);
</code></pre>
</blockquote>
<p>Wie ist es mit Release Modi und memory alignment?<br />
Schreibt es nur zusammenhängende Datenblöcke?<br />
Was passiert wenn mein Datenblock nicht zusammenhängend ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1941402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1941402</guid><dc:creator><![CDATA[bool_]]></dc:creator><pubDate>Wed, 18 Aug 2010 10:06:16 GMT</pubDate></item><item><title><![CDATA[Reply to bool initialisieren mit memset on Wed, 18 Aug 2010 10:07:19 GMT]]></title><description><![CDATA[<p>Da spricht prinzipiell nichts gegen, wenn man C macht (außer dass ich ein 10000 Elemente Array nicht auf den Stack legen würde). Aber warum nicht die C++-Methoden (z.B. std::fill)verwenden? Denn dann könntest du die gleichen Methoden nicht nur für primitive Datentypen, sondern für alle Objektklassen benutzen (memset wird bei komplexen Datentypen versagen). Und du verlierst nichts<sup>*</sup>.</p>
<p><sup>*</sup>: Ich ahne schon, dass diese Bemerkung zu einem Benchmarkwettbewerb führen wird, bei dem gezeigt wird, dass fill in VS6 um 7,34% langsamer ist als memset <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/1941403</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1941403</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 18 Aug 2010 10:07:19 GMT</pubDate></item><item><title><![CDATA[Reply to bool initialisieren mit memset on Wed, 18 Aug 2010 10:08:49 GMT]]></title><description><![CDATA[<p>bool_ schrieb:</p>
<blockquote>
<p>Fellhuhn schrieb:</p>
<blockquote>
<pre><code class="language-cpp">std::bitset&lt;10000&gt; array(0);
</code></pre>
</blockquote>
<p>Wie ist es mit Release Modi und memory alignment?<br />
Schreibt es nur zusammenhängende Datenblöcke?<br />
Was passiert wenn mein Datenblock nicht zusammenhängend ist?</p>
</blockquote>
<p>Die Interna der Klasse brauchen dich nicht zu interessieren. Das ist ja gerade das schöne daran. Denn: Warum sollte das wichtig sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1941405</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1941405</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 18 Aug 2010 10:08:49 GMT</pubDate></item><item><title><![CDATA[Reply to bool initialisieren mit memset on Wed, 18 Aug 2010 10:09:58 GMT]]></title><description><![CDATA[<p>bool_ schrieb:</p>
<blockquote>
<p>Was spricht gegen so ein Vorgehen um beim init alles auf false zu setzen? Oder sollte man eine Schleife Verwenden?</p>
<pre><code class="language-cpp">bool array[10000];
memset(&amp;array, 0, 10000 * sizeof(bool));
</code></pre>
</blockquote>
<p>Wenn du ein nacktes Array verwenden willst, solltest du es so initialisieren:</p>
<pre><code class="language-cpp">bool array[10000] = {};
</code></pre>
<p>Lars</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1941406</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1941406</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 18 Aug 2010 10:09:58 GMT</pubDate></item><item><title><![CDATA[Reply to bool initialisieren mit memset on Wed, 18 Aug 2010 10:10:40 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Da spricht prinzipiell nichts gegen, wenn man C macht (außer dass ich ein 10000 Elemente Array nicht auf den Stack legen würde). Aber warum nicht die C++-Methoden (z.B. std::fill)verwenden? Denn dann könntest du die gleichen Methoden nicht nur für primitive Datentypen, sondern für alle Objektklassen benutzen (memset wird bei komplexen Datentypen versagen). Und du verlierst nichts<sup>*</sup>.</p>
</blockquote>
<p>Fellhuhn schrieb:</p>
<blockquote>
<pre><code class="language-cpp">std::bitset&lt;10000&gt; array(0);
</code></pre>
</blockquote>
<p>Wieso kommt keiner auf die Idee, ihm zu sagen, dass er das Array gleich ordentlich <em>initialisieren</em> kann statt es später zu befüllen?</p>
<pre><code class="language-cpp">bool array[10000] = {0};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1941407</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1941407</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 18 Aug 2010 10:10:40 GMT</pubDate></item><item><title><![CDATA[Reply to bool initialisieren mit memset on Wed, 18 Aug 2010 10:13:13 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>bool_ schrieb:</p>
<blockquote>
<p>Fellhuhn schrieb:</p>
<blockquote>
<pre><code class="language-cpp">std::bitset&lt;10000&gt; array(0);
</code></pre>
</blockquote>
<p>Wie ist es mit Release Modi und memory alignment?<br />
Schreibt es nur zusammenhängende Datenblöcke?<br />
Was passiert wenn mein Datenblock nicht zusammenhängend ist?</p>
</blockquote>
<p>Die Interna der Klasse brauchen dich nicht zu interessieren. Das ist ja gerade das schöne daran. Denn: Warum sollte das wichtig sein?</p>
</blockquote>
<p>Wenn man es an eine bestehende, nicht änderbare Funktion (die ein bool-array erwartet?) übergeben muss, ist das wichtig. Und dann funktioniert das bitset wohl eher nicht.</p>
<p>Lars</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1941411</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1941411</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 18 Aug 2010 10:13:13 GMT</pubDate></item><item><title><![CDATA[Reply to bool initialisieren mit memset on Wed, 18 Aug 2010 10:26:30 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<p>Wenn man es an eine bestehende, nicht änderbare Funktion (die ein bool-array erwartet?) übergeben muss, ist das wichtig. Und dann funktioniert das bitset wohl eher nicht.</p>
</blockquote>
<p>Ach ja, guter alter geerbter Code mit schlechtem Interface, der nie geändert werden darf. Wer hat das noch nicht erlebt?</p>
<p>Hast natürlich recht.</p>
<p>Falls dieser Fall hier vorliegen sollte: std::vector wäre zwar binärkompatibel mit Arrays, jedoch die unseelige Spezialisierung vector&lt;bool&gt; macht hier alles kaputt <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="😡"
    /> . Da müsste man dann wohl zu einem gecasteten vector&lt;char&gt; greifen. Da das aber umständlich ist, wohl doch lieber das nullininitialisierte Array, welches schon mehrmals genannt wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1941422</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1941422</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 18 Aug 2010 10:26:30 GMT</pubDate></item></channel></rss>