<?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[pHead-&amp;gt;nBlockUse == nBlockUse]]></title><description><![CDATA[<p>Hallo!!<br />
Ich hoffe jemand kann mir helfen!</p>
<p>Ich habe einen Thread, der folgendermassen aussieht:</p>
<p>static UINT threadfunktion(LPVOID pvoid)<br />
{<br />
CMonteCarloOberflcheDlg *m_dP12 = (CMonteCarloOberflcheDlg*)pvoid;<br />
m_dP12-&gt;m_dP12 = main();</p>
<p>AfxEndThread(0);<br />
return 0;<br />
}</p>
<p>Die main()-Methode liefert einen double-Wert zurück, der der Member-Variablen m_dP12 übergeben wird. Soweit funktioniert alles i.O..</p>
<p>Wenn der Thread geschlossen werden soll (AfxEndThread(0)), kommt es aufgrund der main()-Methode zu einer Fehlermeldung:</p>
<p>&quot;Expression: pHead-&gt;nBlockUse == nBlockUse&quot;. <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>Nach Ausschließen der möglichen Fehlerquellen, bin ich zum Schluss gekommen, dass die Fehlermeldung aufgrund eines &quot;ofstream&quot; innerhalb der main()-Methode auftritt:</p>
<p>ofstream OutFile(OutputFile,ios::app); //Daten anhängen!!!<br />
OutFile&lt;&lt;Particle&lt;&lt;&quot;\t&quot;&lt;&lt;P12&lt;&lt;&quot;\t&quot;&lt;&lt;InletCounter&lt;&lt;&quot;\t&quot;&lt;&lt;OutletCounter&lt;&lt;&quot;\t&quot;&lt;&lt;Paverage&lt;&lt;&quot;\t&quot;&lt;&lt;Collision&lt;&lt;&quot;\n&quot;;<br />
OutFile.close();.</p>
<p>Wenn ich die Zeile:<br />
OutFile&lt;&lt;Particle&lt;&lt;&quot;\t&quot;&lt;&lt;P12&lt;&lt;&quot;\t&quot;&lt;&lt;InletCounter&lt;&lt;&quot;\t&quot;&lt;&lt;OutletCounter&lt;&lt;&quot;\t&quot;&lt;&lt;Paverage&lt;&lt;&quot;\t&quot;&lt;&lt;Collision&lt;&lt;&quot;\n&quot;;<br />
im Programm auskommentiere, erscheint die Fehlermeldung nicht mehr.</p>
<p>Hat jemand Ahnung, wieso das zustande kommt und wie ich mein Problem lösen könnte?</p>
<p>Vielleicht kann euch dies weiterhelfen:</p>
<p>/* Error if freeing incorrect memory type */<br />
_ASSERTE(pHead-&gt;nBlockUse == nBlockUse);</p>
<p>Vielen Dank im Voraus für die Hilfe!! <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/topic/168278/phead-gt-nblockuse-nblockuse</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 08:37:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/168278.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 20 Dec 2006 13:20:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to pHead-&amp;gt;nBlockUse == nBlockUse on Wed, 20 Dec 2006 13:20:02 GMT]]></title><description><![CDATA[<p>Hallo!!<br />
Ich hoffe jemand kann mir helfen!</p>
<p>Ich habe einen Thread, der folgendermassen aussieht:</p>
<p>static UINT threadfunktion(LPVOID pvoid)<br />
{<br />
CMonteCarloOberflcheDlg *m_dP12 = (CMonteCarloOberflcheDlg*)pvoid;<br />
m_dP12-&gt;m_dP12 = main();</p>
<p>AfxEndThread(0);<br />
return 0;<br />
}</p>
<p>Die main()-Methode liefert einen double-Wert zurück, der der Member-Variablen m_dP12 übergeben wird. Soweit funktioniert alles i.O..</p>
<p>Wenn der Thread geschlossen werden soll (AfxEndThread(0)), kommt es aufgrund der main()-Methode zu einer Fehlermeldung:</p>
<p>&quot;Expression: pHead-&gt;nBlockUse == nBlockUse&quot;. <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>Nach Ausschließen der möglichen Fehlerquellen, bin ich zum Schluss gekommen, dass die Fehlermeldung aufgrund eines &quot;ofstream&quot; innerhalb der main()-Methode auftritt:</p>
<p>ofstream OutFile(OutputFile,ios::app); //Daten anhängen!!!<br />
OutFile&lt;&lt;Particle&lt;&lt;&quot;\t&quot;&lt;&lt;P12&lt;&lt;&quot;\t&quot;&lt;&lt;InletCounter&lt;&lt;&quot;\t&quot;&lt;&lt;OutletCounter&lt;&lt;&quot;\t&quot;&lt;&lt;Paverage&lt;&lt;&quot;\t&quot;&lt;&lt;Collision&lt;&lt;&quot;\n&quot;;<br />
OutFile.close();.</p>
<p>Wenn ich die Zeile:<br />
OutFile&lt;&lt;Particle&lt;&lt;&quot;\t&quot;&lt;&lt;P12&lt;&lt;&quot;\t&quot;&lt;&lt;InletCounter&lt;&lt;&quot;\t&quot;&lt;&lt;OutletCounter&lt;&lt;&quot;\t&quot;&lt;&lt;Paverage&lt;&lt;&quot;\t&quot;&lt;&lt;Collision&lt;&lt;&quot;\n&quot;;<br />
im Programm auskommentiere, erscheint die Fehlermeldung nicht mehr.</p>
<p>Hat jemand Ahnung, wieso das zustande kommt und wie ich mein Problem lösen könnte?</p>
<p>Vielleicht kann euch dies weiterhelfen:</p>
<p>/* Error if freeing incorrect memory type */<br />
_ASSERTE(pHead-&gt;nBlockUse == nBlockUse);</p>
<p>Vielen Dank im Voraus für die Hilfe!! <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/1195381</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195381</guid><dc:creator><![CDATA[alex_p]]></dc:creator><pubDate>Wed, 20 Dec 2006 13:20:02 GMT</pubDate></item><item><title><![CDATA[Reply to pHead-&amp;gt;nBlockUse == nBlockUse on Wed, 20 Dec 2006 13:23:45 GMT]]></title><description><![CDATA[<p>du greifst auf einen speicherbereich zu, der nicht mehr existiert oder noch nie existiert hat.<br />
debugger anschmeißen und step für step durchlaufen, um den fehler konkreter eingrenzen zu können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195385</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195385</guid><dc:creator><![CDATA[elise]]></dc:creator><pubDate>Wed, 20 Dec 2006 13:23:45 GMT</pubDate></item><item><title><![CDATA[Reply to pHead-&amp;gt;nBlockUse == nBlockUse on Wed, 20 Dec 2006 13:26:04 GMT]]></title><description><![CDATA[<p>alex_p schrieb:</p>
<blockquote>
<p>Die main()-Methode liefert einen double-Wert zurück, der der Member-Variablen m_dP12 übergeben wird. Soweit funktioniert alles i.O..</p>
</blockquote>
<p>Das könnte ein Problem sein - üblicherweise ist main() der Haupteinstiegspunkt des Programms, und die Funktion sollte man nicht von irgendwo im Programm heraus aufrufen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195388</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195388</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 20 Dec 2006 13:26:04 GMT</pubDate></item><item><title><![CDATA[Reply to pHead-&amp;gt;nBlockUse == nBlockUse on Wed, 20 Dec 2006 13:31:36 GMT]]></title><description><![CDATA[<p>main() ist in meinem Fall einfach eine Methode, die so heißt, und nicht der Haupteinstiegspunkt des Programms.<br />
Das Problem tritt auch in anderen Methoden auf, die die gleiche Struktur und Aufgabe haben wie diese main()-Methode.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195392</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195392</guid><dc:creator><![CDATA[alex_p]]></dc:creator><pubDate>Wed, 20 Dec 2006 13:31:36 GMT</pubDate></item><item><title><![CDATA[Reply to pHead-&amp;gt;nBlockUse == nBlockUse on Wed, 20 Dec 2006 13:34:07 GMT]]></title><description><![CDATA[<p>Dann bleibt noch elise's Vorschlag- schau dir im Debugger an, was schief gelaufen ist.</p>
<p>(PS: Von wo aus und mit welchem Parameter startest du denn die Thread-Funktion?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195395</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195395</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 20 Dec 2006 13:34:07 GMT</pubDate></item><item><title><![CDATA[Reply to pHead-&amp;gt;nBlockUse == nBlockUse on Wed, 20 Dec 2006 13:34:52 GMT]]></title><description><![CDATA[<p>alex_p schrieb:</p>
<blockquote>
<p>Wenn ich die Zeile:<br />
OutFile&lt;&lt;Particle&lt;&lt;&quot;\t&quot;&lt;&lt;P12&lt;&lt;&quot;\t&quot;&lt;&lt;InletCounter&lt;&lt;&quot;\t&quot;&lt;&lt;OutletCounter&lt;&lt;&quot;\t&quot;&lt;&lt;Paverage&lt;&lt;&quot;\t&quot;&lt;&lt;Collision&lt;&lt;&quot;\n&quot;;<br />
im Programm auskommentiere, erscheint die Fehlermeldung nicht mehr.</p>
</blockquote>
<p>Dann kommentier doch mal einzelne Teile der Ausgabe aus, dann weißt du, welcher davon den Fehler verursacht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195397</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195397</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Wed, 20 Dec 2006 13:34:52 GMT</pubDate></item><item><title><![CDATA[Reply to pHead-&amp;gt;nBlockUse == nBlockUse on Wed, 20 Dec 2006 13:42:11 GMT]]></title><description><![CDATA[<p>Sogar wenn nur:</p>
<p>OutFile&lt;&lt;&quot;\n&quot;;</p>
<p>in der Ausgabe steht, kommt es zur Fehlermeldung.</p>
<p>Ansonsten wird in der Ausgabedatei OutputFile alles richtig gespeichert und anschließend die main()-Methode fehlerfrei verlassen.</p>
<p>Das Problemm tritt erst dann auf, der ?Speicher? des Threads gelöscht werden soll (AfxEndThread(0)). <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195403</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195403</guid><dc:creator><![CDATA[alex_p]]></dc:creator><pubDate>Wed, 20 Dec 2006 13:42:11 GMT</pubDate></item><item><title><![CDATA[Reply to pHead-&amp;gt;nBlockUse == nBlockUse on Wed, 20 Dec 2006 13:46:49 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>(PS: Von wo aus und mit welchem Parameter startest du denn die Thread-Funktion?)</p>
</blockquote>
<p>Ich starte die Thread-Funktion von einem Dlg-Dialogfeld aus und übergebe die Parameter des Dialogfeldes:</p>
<p>pMeinFaden =AfxBeginThread(threadfunktion,(LPVOID) this,THREAD_PRIORITY_NORMAL); .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195405</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195405</guid><dc:creator><![CDATA[alex_p]]></dc:creator><pubDate>Wed, 20 Dec 2006 13:46:49 GMT</pubDate></item><item><title><![CDATA[Reply to pHead-&amp;gt;nBlockUse == nBlockUse on Wed, 20 Dec 2006 15:52:02 GMT]]></title><description><![CDATA[<p>Hallo noch mal!</p>
<p>Das ist der Quell-Code, wo die Fehlermeldung auftritt:</p>
<pre><code class="language-cpp">/*
             * Free up the _tiddata structure &amp; its malloc-ed buffers.
             */

            if ( ptd ) {
                if(ptd-&gt;_errmsg)
                    _free_crt((void *)ptd-&gt;_errmsg);

                if(ptd-&gt;_namebuf0)
                    _free_crt((void *)ptd-&gt;_namebuf0);

                if(ptd-&gt;_namebuf1)
                    _free_crt((void *)ptd-&gt;_namebuf1);

                if(ptd-&gt;_asctimebuf)
                    _free_crt((void *)ptd-&gt;_asctimebuf);

                if(ptd-&gt;_gmtimebuf)
                    _free_crt((void *)ptd-&gt;_gmtimebuf);

                if(ptd-&gt;_cvtbuf)
                    _free_crt((void *)ptd-&gt;_cvtbuf);

                                if (ptd-&gt;_pxcptacttab != _XcptActTab)
                                        _free_crt((void *)ptd-&gt;_pxcptacttab);

                _free_crt((void *)ptd);
            }

            /*
             * Zero out the one pointer to the per-thread data block
             */
</code></pre>
<p>Die eigentliche Fehlermeldung wird genau bei dieser Zeile ausgelöst:</p>
<pre><code class="language-cpp">if(ptd-&gt;_cvtbuf)
                    _free_crt((void *)ptd-&gt;_cvtbuf);
</code></pre>
<p>Hat das etwas mit der OutputFile-Datei zu tun:</p>
<pre><code class="language-cpp">ofstream OutFile(OutputFile,ios::app); //Daten anhängen!!! 
OutFile&lt;&lt;Particle&lt;&lt;&quot;\t&quot;&lt;&lt;P12&lt;&lt;&quot;\t&quot;&lt;&lt;InletCounter&lt;&lt;&quot;\t&quot;&lt;&lt;OutletCounter&lt;&lt;&quot;\t&quot;&lt;&lt;Paverage&lt;&lt;&quot;\t&quot;&lt;&lt;Collision&lt;&lt;&quot;\n&quot;; 
OutFile.close();
</code></pre>
<p>Und zwar hat &quot;elise&quot; erwähnt:</p>
<blockquote>
<p>du greifst auf einen speicherbereich zu, der nicht mehr existiert oder noch nie existiert hat.</p>
</blockquote>
<p><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>
]]></description><link>https://www.c-plusplus.net/forum/post/1195481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195481</guid><dc:creator><![CDATA[alex_p]]></dc:creator><pubDate>Wed, 20 Dec 2006 15:52:02 GMT</pubDate></item><item><title><![CDATA[Reply to pHead-&amp;gt;nBlockUse == nBlockUse on Thu, 21 Dec 2006 12:17:57 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /> ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1196057</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1196057</guid><dc:creator><![CDATA[alex_p]]></dc:creator><pubDate>Thu, 21 Dec 2006 12:17:57 GMT</pubDate></item><item><title><![CDATA[Reply to pHead-&amp;gt;nBlockUse == nBlockUse on Thu, 21 Dec 2006 12:23:15 GMT]]></title><description><![CDATA[<p>Geh mal ein paar Stufen im Call-Stack nach oben - von wo in deinem Programm wird denn der problematische Abschnitt aufgerufen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1196063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1196063</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 21 Dec 2006 12:23:15 GMT</pubDate></item></channel></rss>