<?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[Fehler mit dynamischem Bool-array]]></title><description><![CDATA[<p>Hi.</p>
<p>Arbeite gerade an einer Bibliothek, und da stoße ich auf einen (mir scheinbar unlöslichen) Fehler mit folgender Deklaration des Verursachers:</p>
<pre><code class="language-cpp">bool* w= new bool[sizeof(uninteressant - aber auf jeden Fall nicht null!)];
</code></pre>
<p>Egal, wie ich versuche, die Werte des Arrays (einzeln, Element für Element) zu ändern, in der Laufzeit eines Testprogramms stürzt dieses immer ab. =&gt;Durch ein bisschen Forschung fand ich heraus, dass<br />
es immer bei der Initialisierung der Werte passiert.</p>
<p>Wo könnte da der Fehler liegen...?</p>
<p>P.S.: Nein, ich habe verschiedene Zuweisungsfehler-Möglichkeiten schon ausgeschlossen, wie</p>
<pre><code class="language-cpp">w[-1]=x;
</code></pre>
<p>o.ä</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/288825/fehler-mit-dynamischem-bool-array</link><generator>RSS for Node</generator><lastBuildDate>Wed, 19 Aug 2026 17:25:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/288825.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 23 Jun 2011 15:06:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fehler mit dynamischem Bool-array on Thu, 23 Jun 2011 15:06:55 GMT]]></title><description><![CDATA[<p>Hi.</p>
<p>Arbeite gerade an einer Bibliothek, und da stoße ich auf einen (mir scheinbar unlöslichen) Fehler mit folgender Deklaration des Verursachers:</p>
<pre><code class="language-cpp">bool* w= new bool[sizeof(uninteressant - aber auf jeden Fall nicht null!)];
</code></pre>
<p>Egal, wie ich versuche, die Werte des Arrays (einzeln, Element für Element) zu ändern, in der Laufzeit eines Testprogramms stürzt dieses immer ab. =&gt;Durch ein bisschen Forschung fand ich heraus, dass<br />
es immer bei der Initialisierung der Werte passiert.</p>
<p>Wo könnte da der Fehler liegen...?</p>
<p>P.S.: Nein, ich habe verschiedene Zuweisungsfehler-Möglichkeiten schon ausgeschlossen, wie</p>
<pre><code class="language-cpp">w[-1]=x;
</code></pre>
<p>o.ä</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2082683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2082683</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 23 Jun 2011 15:06:55 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler mit dynamischem Bool-array on Thu, 23 Jun 2011 15:20:53 GMT]]></title><description><![CDATA[<p>Kannst du ein möglichst kleines kompilierbares Beispiel posten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2082690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2082690</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Thu, 23 Jun 2011 15:20:53 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler mit dynamischem Bool-array on Thu, 23 Jun 2011 15:26:42 GMT]]></title><description><![CDATA[<p>Ähhh...</p>
<p>Compilierbar? Das geht ja eben nicht(=&gt;Fehler), das wäre nicht im Sinne meines Beitrags.<br />
Ich kann aber ein Stückchen Quellcode posten, wenns das auch tut (was es hoffentlich sollte)...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2082693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2082693</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 23 Jun 2011 15:26:42 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler mit dynamischem Bool-array on Thu, 23 Jun 2011 15:28:16 GMT]]></title><description><![CDATA[<p>Hacker schrieb:</p>
<blockquote>
<p>Egal, wie ich versuche, die Werte des Arrays (einzeln, Element für Element) zu ändern, in der Laufzeit eines Testprogramms stürzt dieses immer ab.</p>
</blockquote>
<p>Hacker schrieb:</p>
<blockquote>
<p>Compilierbar? Das geht ja eben nicht(=&gt;Fehler), das wäre nicht im Sinne meines Beitrags.</p>
</blockquote>
<p>Hä?<br />
Welche Fehlermeldung kommt denn vom Compiler?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2082695</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2082695</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Thu, 23 Jun 2011 15:28:16 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler mit dynamischem Bool-array on Thu, 23 Jun 2011 15:45:56 GMT]]></title><description><![CDATA[<p>Ich hab doch gesagt, in der Laufzeit stürzt das Programm ja ab!</p>
<pre><code class="language-cpp">inline void DA(ull a){
bool* w=new bool[NKZE(a)+1];
w={false};
ull f=NKZP(a);
us e=0;
a-=NKZP(a);

do{
f/=2;

if(f&lt;=a){

w[e]=true;/// Hier stürzt das Programm ab
...
...
</code></pre>
<p>So, das wäre der relevante Teil des Quellcodes.</p>
<p>ull -&gt; unsigned long long<br />
us -&gt; unsigned short<br />
(sind typedefs)</p>
<p>NKZP() gibt die nächstkleinere Zweierpotenz einer als Parameter übergebenen Zahl zurück,<br />
NKZE() den Exponent dieser Potenz.</p>
<p>Den Algorithmus hatte ich schon vorher ausprobiert, er funktioniert wunderbar. Nur eben nicht die Erneuerung mit dem Bool-array.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2082697</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2082697</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 23 Jun 2011 15:45:56 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler mit dynamischem Bool-array on Thu, 23 Jun 2011 15:49:34 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">bool* w=new bool[NKZE(a)+1];
w={false};
</code></pre>
<p>Das sieht tatsächlich falsch aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2082710</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2082710</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 23 Jun 2011 15:49:34 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler mit dynamischem Bool-array on Thu, 23 Jun 2011 15:50:58 GMT]]></title><description><![CDATA[<p>Ich probier grad, ob es an einer nicht-möglichen Speicherplatzreservierung liegt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2082711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2082711</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 23 Jun 2011 15:50:58 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler mit dynamischem Bool-array on Thu, 23 Jun 2011 15:53:24 GMT]]></title><description><![CDATA[<p>Hacker schrieb:</p>
<blockquote>
<p>Ich hab doch gesagt, in der Laufzeit stürzt das Programm ja ab!</p>
</blockquote>
<p>Was wiederum impliziert, dass es zuerst kompiliert wurde und demnach kompilierbar ist. Du musst zwischen Compiler- und Laufzeitfehler unterscheiden.</p>
<pre><code class="language-cpp">w={false};
</code></pre>
<p>Das tut niemals, was du vorhast. Das wäre so nicht einmal erlaubt. Was dein Compiler wahrscheinlich tut, ist das als <code>w=NULL;</code> zu interpretieren.</p>
<p>Aber warum gehst du nicht mit dem Debugger durch?</p>
<p>Und irgendwie habe ich das Gefühl, dass <code>NKZP</code> und <code>NKZE</code> Makros sind. Mach Funktionen daraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2082713</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2082713</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 23 Jun 2011 15:53:24 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler mit dynamischem Bool-array on Thu, 23 Jun 2011 15:57:40 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Und irgendwie habe ich das Gefühl, dass <code>NKZP</code> und <code>NKZE</code> Makros sind. Mach Funktionen daraus!</p>
</blockquote>
<p>Es sind Funktionen, dein Gefühl hat dich belogen.</p>
<p>Und Danke, du hattest recht. Ich hab das Array jetzt statisch deklariert, und das Programm kompiliert wunderbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2082714</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2082714</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 23 Jun 2011 15:57:40 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler mit dynamischem Bool-array on Thu, 23 Jun 2011 15:55:44 GMT]]></title><description><![CDATA[<p>Was erwartest du von Zeile 3?</p>
<p>Edit:<br />
Zu spät.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2082715</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2082715</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Thu, 23 Jun 2011 15:55:44 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler mit dynamischem Bool-array on Thu, 23 Jun 2011 15:55:31 GMT]]></title><description><![CDATA[<p>Statt</p>
<pre><code class="language-cpp">w={false};
</code></pre>
<p>einfach</p>
<pre><code class="language-cpp">std::memset(w, 0, NKZE(a) + 1);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2082716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2082716</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Thu, 23 Jun 2011 15:55:31 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler mit dynamischem Bool-array on Thu, 23 Jun 2011 15:56:25 GMT]]></title><description><![CDATA[<p>Hacker schrieb:</p>
<blockquote>
<p>Es sind Funktionen, dein Gefühl hat dich belogen.</p>
</blockquote>
<p>Okay, dann ist die Benennung etwas gewöhnungsbedürftig.</p>
<p>Aber viel wichtiger, hast du auch den anderen Teil meines Beitrags gesehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2082717</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2082717</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 23 Jun 2011 15:56:25 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler mit dynamischem Bool-array on Thu, 23 Jun 2011 15:56:31 GMT]]></title><description><![CDATA[<p>Hacker schrieb:</p>
<blockquote>
<p>Es sind Funktionen, dein Gefühl hat dich belogen.</p>
</blockquote>
<p>Dann solltest du deine Funktionen ordentlich nennen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2082718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2082718</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Thu, 23 Jun 2011 15:56:31 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler mit dynamischem Bool-array on Thu, 23 Jun 2011 15:57:32 GMT]]></title><description><![CDATA[<p>Gibt's kein calloc() für C++? Na ja gut, es gibt ja auch kein realloc().</p>
<p>@TE<br />
Was spricht gegen std::vector?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2082719</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2082719</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Thu, 23 Jun 2011 15:57:32 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler mit dynamischem Bool-array on Thu, 23 Jun 2011 15:58:30 GMT]]></title><description><![CDATA[<p>EOutOfResources schrieb:</p>
<blockquote>
<p>Statt</p>
<pre><code class="language-cpp">w={false};
</code></pre>
<p>einfach</p>
<pre><code class="language-cpp">std::memset(w, 0, NKZE(a) + 1);
</code></pre>
</blockquote>
<p>Warum nicht</p>
<pre><code class="language-cpp">bool* w = new bool[NKZE(a)+1]();
</code></pre>
<p>oder gleich</p>
<pre><code class="language-cpp">std::vector&lt;bool&gt; w(NKZE(a)+1);
</code></pre>
<p>Ist zwar die Template-Spezialisierung, aber sollte im Normalfall okay sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2082720</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2082720</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 23 Jun 2011 15:58:30 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler mit dynamischem Bool-array on Thu, 23 Jun 2011 15:59:13 GMT]]></title><description><![CDATA[<p>Statt</p>
<pre><code class="language-cpp">std::memset(w, 0, NKZE(a) + 1);
</code></pre>
<p>einfach</p>
<pre><code class="language-cpp">bool* w=new bool[NKZE(a)+1]();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2082721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2082721</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 23 Jun 2011 15:59:13 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler mit dynamischem Bool-array on Thu, 23 Jun 2011 17:57:46 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">*w={true};
</code></pre>
<p>Ist c++0x</p>
<p>Welchen Compiler verwendet ihr?<br />
Ich hab gcc 4.6.1 -std=gnu++0x<br />
Bei mir geht folgendes Problemlos</p>
<pre><code class="language-cpp">bool *w=new bool[10];
    *w={true};
    w[1]=true;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2082761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2082761</guid><dc:creator><![CDATA[m~m~m]]></dc:creator><pubDate>Thu, 23 Jun 2011 17:57:46 GMT</pubDate></item></channel></rss>