<?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[Heap Fehler mit std::string]]></title><description><![CDATA[<p>Hi an alle,</p>
<p>gibt es irgendwelche bekannten Probleme mit den strings der STL?<br />
Ich bekomme dauernd Heap Corruption Detected im Debug Mode beim ausführen von delete auf ein mit new initialisiertes Objekt.</p>
<p>Ich kann aber nichts finden wo der Heap korrumpiert sein soll.</p>
<p>Gruß<br />
Karsten</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/252618/heap-fehler-mit-std-string</link><generator>RSS for Node</generator><lastBuildDate>Mon, 14 Sep 2026 05:44:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/252618.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 22 Oct 2009 12:41:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Heap Fehler mit std::string on Thu, 22 Oct 2009 12:41:18 GMT]]></title><description><![CDATA[<p>Hi an alle,</p>
<p>gibt es irgendwelche bekannten Probleme mit den strings der STL?<br />
Ich bekomme dauernd Heap Corruption Detected im Debug Mode beim ausführen von delete auf ein mit new initialisiertes Objekt.</p>
<p>Ich kann aber nichts finden wo der Heap korrumpiert sein soll.</p>
<p>Gruß<br />
Karsten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1796352</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1796352</guid><dc:creator><![CDATA[CrazyPlaya]]></dc:creator><pubDate>Thu, 22 Oct 2009 12:41:18 GMT</pubDate></item><item><title><![CDATA[Reply to Heap Fehler mit std::string on Thu, 22 Oct 2009 12:47:17 GMT]]></title><description><![CDATA[<p>&quot;bekannten Probleme mit den strings der STL&quot;<br />
nein, wird dein fehler sein... (2x delete auf ein new z.bsp.)</p>
<p>zeig mal ein wenig quellcode, wenn du es mit dem debugger nicht selbst finden solltest...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1796355</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1796355</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 22 Oct 2009 12:47:17 GMT</pubDate></item><item><title><![CDATA[Reply to Heap Fehler mit std::string on Thu, 22 Oct 2009 12:54:16 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">g_pSip = new CSip(sTest, sTest2);
   if(!g_pSip-&gt;Initialize())
   {
           if(g_pSip != NULL)
      {
         delete g_pSip;   //Hier Absturz destruktor hat nichts zum Abarbeiten
         g_pSip = NULL;
      }
      return false;
   }
</code></pre>
<p>ich habe schon alles geschaut auf dieses Objekt wird definitiv keine 2tes Delete ausgeführt.<br />
Auch nicht innerhalb der Klasse wird irgendein Objekt 2 mal gelöscht.</p>
<p>Vllt. noch alles Hinweis die Fehlermeldung besagt crt meldet das die App Speicher nach dem Ende des Heaps schreibt???</p>
<p>Klicke ich auf Continue läuft die App ganz normal weiter bis sie wieder versucht an dieser Stelle das Objekt versucht zu initalisieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1796360</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1796360</guid><dc:creator><![CDATA[CrazyPlaya]]></dc:creator><pubDate>Thu, 22 Oct 2009 12:54:16 GMT</pubDate></item><item><title><![CDATA[Reply to Heap Fehler mit std::string on Thu, 22 Oct 2009 12:55:09 GMT]]></title><description><![CDATA[<p>Der Fehler wird vermutlich vor der delete-Anweisung stehen, er wird aber erst dann bemerkt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1796362</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1796362</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Thu, 22 Oct 2009 12:55:09 GMT</pubDate></item><item><title><![CDATA[Reply to Heap Fehler mit std::string on Thu, 22 Oct 2009 13:02:33 GMT]]></title><description><![CDATA[<p>Das ist schon möglich, nur wo???<br />
Und warum tritt dies nur im Debug Mode auf und in der<br />
Release läuft er problemlos durch???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1796365</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1796365</guid><dc:creator><![CDATA[CrazyPlaya]]></dc:creator><pubDate>Thu, 22 Oct 2009 13:02:33 GMT</pubDate></item><item><title><![CDATA[Reply to Heap Fehler mit std::string on Thu, 22 Oct 2009 13:16:34 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>siehe <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-249648.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-249648.html</a></p>
<p>MfG,</p>
<p>Probe-Nutzer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1796370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1796370</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Thu, 22 Oct 2009 13:16:34 GMT</pubDate></item><item><title><![CDATA[Reply to Heap Fehler mit std::string on Thu, 22 Oct 2009 13:48:03 GMT]]></title><description><![CDATA[<p>@ Probe-Nutzer.</p>
<p>Danke für die Tipps. Hab jetzt mal ein wenig mit _CrtCheckMemory geprüft.<br />
Bevor</p>
<p>g_pSip = new CSip(....)</p>
<p>gibt die Funktion noch 1 zurück.<br />
Sobald im Konstruktor _CrtCheckMemory ausgeführt wird also direkt als erste Anweisung im Konstruktor wird 0 zurückgegeben.</p>
<p>Jetzt weiß ich nicht ob es normal ist das die Funktion im Konstruktor des Objekts nicht korrekt funktioniert oder ob mit den Parametern schon was falsch läuft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1796391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1796391</guid><dc:creator><![CDATA[CrazyPlaya]]></dc:creator><pubDate>Thu, 22 Oct 2009 13:48:03 GMT</pubDate></item><item><title><![CDATA[Reply to Heap Fehler mit std::string on Thu, 22 Oct 2009 16:04:06 GMT]]></title><description><![CDATA[<p>Das hier z.Bsp.:</p>
<pre><code class="language-cpp">g_pSip = new CSip(sTest, sTest2); 
   if(!g_pSip-&gt;Initialize()) 
   { 
           if(g_pSip != NULL) 
      { 
         delete g_pSip;   //Hier Absturz destruktor hat nichts zum Abarbeiten 
         g_pSip = NULL; 
      } 
      return false; 
   }
</code></pre>
<p>sieht mir so aus, als ob du uns zw. dem new und init ne ganze menge verschwiegen hast, wenn nicht:</p>
<pre><code class="language-cpp">g_pSip = new CSip(sTest, sTest2); 
   if(!g_pSip-&gt;Initialize()) 
   { 
      delete g_pSip;   //Hier Absturz destruktor hat nichts zum Abarbeiten 
      return false; 
   }
</code></pre>
<p>macht genau das gleiche...</p>
<p>ansonsten sind die häufigsten ursachen (wie in dem thread auch geschrieben der vom compiler generierte copy-ctor/assignmet op, wenn man mit rohen pointern arbeitet).<br />
wenn das bei dir nicht der fall ist, wird es ein bisschen schwer zu finden<br />
den blog hab ich mir noch nicht durchgelesen, aber bisher hab ich wenige bug-finding-wege gesehen, die zwischenzeitlich den (zumindest den ungeübten^^) Programmierer eher verwirrt haben...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1796484</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1796484</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 22 Oct 2009 16:04:06 GMT</pubDate></item><item><title><![CDATA[Reply to Heap Fehler mit std::string on Fri, 23 Oct 2009 06:55:01 GMT]]></title><description><![CDATA[<p>Also in Initialize wird kein Speicher reserviert nur einige Zufallsnummern erzeugt und geprüft ob die im Konstruktor übergebenen Parameter korrekt sind.</p>
<p>Also einfach mal mit nem eigenen Copy ctor probieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1796861</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1796861</guid><dc:creator><![CDATA[CrazyPlaya]]></dc:creator><pubDate>Fri, 23 Oct 2009 06:55:01 GMT</pubDate></item><item><title><![CDATA[Reply to Heap Fehler mit std::string on Fri, 23 Oct 2009 08:05:38 GMT]]></title><description><![CDATA[<p>Fehler gefunden.<br />
Struct Alignement auf 1 Byte gesetzt jetzt kommt auch kein Fehler mehr <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/1796886</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1796886</guid><dc:creator><![CDATA[CrazyPlaya]]></dc:creator><pubDate>Fri, 23 Oct 2009 08:05:38 GMT</pubDate></item><item><title><![CDATA[Reply to Heap Fehler mit std::string on Fri, 23 Oct 2009 08:54:05 GMT]]></title><description><![CDATA[<p>CrazyPlaya schrieb:</p>
<blockquote>
<p>Fehler gefunden.<br />
Struct Alignement auf 1 Byte gesetzt jetzt kommt auch kein Fehler mehr <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>
</blockquote>
<p>Ohne die Details zu kennen: das hört sich eher danach an, als hättest du das Symptom kurzzeitig unterdrückt, statt tatsächlich den Fehler gefunden zu haben.</p>
<p>Deiner Beschreibung nach zerschießt du dir irgendwo den Heap. Das muss nicht direkt mit der Stelle zusammenhängen, wo die Fehlermeldung kommt. Vor allem kann man so einen Fehler nicht durch Anpassung des Alignments beheben.<br />
Oh, und dein Code läuft natürlich nicht mit optimaler Geschwindigkeit mit 1-byte-alignment.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1796905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1796905</guid><dc:creator><![CDATA[Registrierter Troll]]></dc:creator><pubDate>Fri, 23 Oct 2009 08:54:05 GMT</pubDate></item></channel></rss>