<?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[Abort bei delete[]]]></title><description><![CDATA[<p>hi<br />
ich versuche grad als uebung das programm &quot;wc&quot; nachzuschreiben und aus irgendeinem grund, bekomme ich beim loeschen eines strings (char <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title="*)"
      alt="😉"
    /> per delete[] immer einen abort.</p>
<p>der code liegt hier<br />
<a href="http://rafb.net/p/VBaRis70.html" rel="nofollow">http://rafb.net/p/VBaRis70.html</a></p>
<p>das ganze ist sehr suboptimal, ich versuche das mit vim zu schreiben und wir sollen sehr grundlegend arbeiten, also ohne libs etc.</p>
<p>wie auch immer, auf jedenfall bekomme ich immer bei zeile 58 einen abort. ich sehe den fehler aber einfach nicht. bin den inhalt des speichers schon schritt fuer schritt durchgegangen, aber die betreffende variable enthaelt korrekt den string mit '\0' byte.</p>
<p>vielleicht kann mir ja jemand helfen?</p>
<p>hier mal zeile 53 - 64, hilft wahrscheinlich nicht, aber so koennte man den fehler vielleicht sogar sofort sehen <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>
<pre><code>void deleteList(node **first)
{
        node *curNode = *first;

        while (curNode) {
                delete[] curNode-&gt;str; // verursacht abort ****************************************************
                node *temp = curNode-&gt;next;
                delete curNode;
                curNode = temp;
        }

        *first = 0;
}
</code></pre>
<p>danke im voraus <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/224890/abort-bei-delete</link><generator>RSS for Node</generator><lastBuildDate>Fri, 02 Oct 2026 03:29:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/224890.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 16 Oct 2008 12:07:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Abort bei delete[] on Thu, 16 Oct 2008 12:07:53 GMT]]></title><description><![CDATA[<p>hi<br />
ich versuche grad als uebung das programm &quot;wc&quot; nachzuschreiben und aus irgendeinem grund, bekomme ich beim loeschen eines strings (char <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title="*)"
      alt="😉"
    /> per delete[] immer einen abort.</p>
<p>der code liegt hier<br />
<a href="http://rafb.net/p/VBaRis70.html" rel="nofollow">http://rafb.net/p/VBaRis70.html</a></p>
<p>das ganze ist sehr suboptimal, ich versuche das mit vim zu schreiben und wir sollen sehr grundlegend arbeiten, also ohne libs etc.</p>
<p>wie auch immer, auf jedenfall bekomme ich immer bei zeile 58 einen abort. ich sehe den fehler aber einfach nicht. bin den inhalt des speichers schon schritt fuer schritt durchgegangen, aber die betreffende variable enthaelt korrekt den string mit '\0' byte.</p>
<p>vielleicht kann mir ja jemand helfen?</p>
<p>hier mal zeile 53 - 64, hilft wahrscheinlich nicht, aber so koennte man den fehler vielleicht sogar sofort sehen <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>
<pre><code>void deleteList(node **first)
{
        node *curNode = *first;

        while (curNode) {
                delete[] curNode-&gt;str; // verursacht abort ****************************************************
                node *temp = curNode-&gt;next;
                delete curNode;
                curNode = temp;
        }

        *first = 0;
}
</code></pre>
<p>danke im voraus <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/1599890</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1599890</guid><dc:creator><![CDATA[thoniel]]></dc:creator><pubDate>Thu, 16 Oct 2008 12:07:53 GMT</pubDate></item><item><title><![CDATA[Reply to Abort bei delete[] on Thu, 16 Oct 2008 12:34:51 GMT]]></title><description><![CDATA[<p>Der Code ist eigentlich C, von C++ sieht man nur die Ein-/Ausgabe. Wieso verwendest du nicht eine Klasse für deine Liste? Objekt orientiertes Programmieren, schon mal davon gehört? <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>
<p>Zu deinem Fehler:<br />
Du gibst Speicher frei, welchen du gar nie angefordert hast. Ich konnte nirgends ein <code>new char[...]</code> finden. Also willst du Speicher freigegeben, welcher dir gar nicht gehört.<br />
Aber das Problem kommt schon nur daher, dass du eben nicht in C++ sondern in C programmierst. In C++ hat man für die Strings eine entsprechende Klasse: <code>std::string</code> .</p>
<p>Also ganz grundsätzlich, solltest du vielleicht mal die Grundlagen von C++ lernen oder sie nochmals wiederholen.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1599911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1599911</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Thu, 16 Oct 2008 12:34:51 GMT</pubDate></item><item><title><![CDATA[Reply to Abort bei delete[] on Thu, 16 Oct 2008 12:46:27 GMT]]></title><description><![CDATA[<p>hi<br />
danke f[r die antwort.<br />
wie gesagt, soll das ganze super simpel sein und keine weiteren sachen benutzt werden. normal schreibe ich auch in klassen etc, aber das ganze hier sollte nur ne uebung fuer systemnahe programmierung sein, d.h. keine string klasse, sondern direkt char *.</p>
<p>sollen wir einfach koennen. praktisch macht es natuerlich nicht uebertrieben viel sinn <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>
<p>hast recht, hatte tatsaechlich vergessen den string zu kopieren... (haette ich vielleicht auch gleich weglassen koennen und direkt auf den parametern arbeiten).</p>
<p>danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1599922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1599922</guid><dc:creator><![CDATA[thoniel]]></dc:creator><pubDate>Thu, 16 Oct 2008 12:46:27 GMT</pubDate></item><item><title><![CDATA[Reply to Abort bei delete[] on Thu, 16 Oct 2008 13:18:57 GMT]]></title><description><![CDATA[<p>thoniel schrieb:</p>
<blockquote>
<p>wie gesagt, soll das ganze super simpel sein und keine weiteren sachen benutzt werden. normal schreibe ich auch in klassen etc, aber das ganze hier sollte nur ne uebung fuer systemnahe programmierung sein, d.h. keine string klasse, sondern direkt char *.</p>
<p>sollen wir einfach koennen. praktisch macht es natuerlich nicht uebertrieben viel sinn <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>
</blockquote>
<p>Ehm, aber ihr werdet ja wohl die C++ Klassen und die C++ Standardbibliothek benutzen dürfen? Sonst macht das ja überhaupt gar keinen Sinn und ihr könntet ja gleich in C programmieren!<br />
Wer vergibt denn in C++ solche Aufgabe?</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1599941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1599941</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Thu, 16 Oct 2008 13:18:57 GMT</pubDate></item></channel></rss>