<?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[Dynamische Listen...Speicherfreigabe]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgendes Problem. Ich erstelle eine dynamische Liste.<br />
Die Elemente der Liste hole ich mir mit &quot;new Listenelement&quot;. Dann wird mit der Liste gearbeitet. Die Liste wird in mehreren Funktionen verwendet und bearbeitet. Damit ich nicht immer die Zeiger usw. übergeben muss, habe ich einen globalen zeiger &quot;anfang_liste&quot;. Durch diesen kann ich dann in jeder Funktion auf den Anfang der Liste zurückgreifen.<br />
Nun zu meinem Problem. Ich möchte nun die Liste lösche, also den Speicher frei geben. Das geht ja mit delete. Allerdings funktioniert das nicht, wenn ich z.B. &quot;delete anfang_liste;&quot;. Da gibt es immer Fehler.</p>
<p>WÄre toll, wenn mir da jemand helfen könnte und weiß, wie man den Speicher dann wieder freigeben kann.</p>
<p>Vielen Dank.</p>
<p>Gruß<br />
Steffen</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/133151/dynamische-listen-speicherfreigabe</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 19:04:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/133151.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 15 Jan 2006 16:00:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Dynamische Listen...Speicherfreigabe on Sun, 15 Jan 2006 16:00:53 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgendes Problem. Ich erstelle eine dynamische Liste.<br />
Die Elemente der Liste hole ich mir mit &quot;new Listenelement&quot;. Dann wird mit der Liste gearbeitet. Die Liste wird in mehreren Funktionen verwendet und bearbeitet. Damit ich nicht immer die Zeiger usw. übergeben muss, habe ich einen globalen zeiger &quot;anfang_liste&quot;. Durch diesen kann ich dann in jeder Funktion auf den Anfang der Liste zurückgreifen.<br />
Nun zu meinem Problem. Ich möchte nun die Liste lösche, also den Speicher frei geben. Das geht ja mit delete. Allerdings funktioniert das nicht, wenn ich z.B. &quot;delete anfang_liste;&quot;. Da gibt es immer Fehler.</p>
<p>WÄre toll, wenn mir da jemand helfen könnte und weiß, wie man den Speicher dann wieder freigeben kann.</p>
<p>Vielen Dank.</p>
<p>Gruß<br />
Steffen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/967242</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/967242</guid><dc:creator><![CDATA[Steffenn]]></dc:creator><pubDate>Sun, 15 Jan 2006 16:00:53 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische Listen...Speicherfreigabe on Sun, 15 Jan 2006 16:49:39 GMT]]></title><description><![CDATA[<p>Steffenn schrieb:</p>
<blockquote>
<p>Ich erstelle eine dynamische Liste.<br />
Die Elemente der Liste hole ich mir mit &quot;new Listenelement&quot;. Dann wird mit der Liste gearbeitet. Die Liste wird in mehreren Funktionen verwendet und bearbeitet. Damit ich nicht immer die Zeiger usw. übergeben muss, habe ich einen globalen zeiger &quot;anfang_liste&quot;. Durch diesen kann ich dann in jeder Funktion auf den Anfang der Liste zurückgreifen.</p>
</blockquote>
<p>Klingt nach extrem beschissenen Design</p>
<p>Steffenn schrieb:</p>
<blockquote>
<p>Nun zu meinem Problem. Ich möchte nun die Liste lösche, also den Speicher frei geben. Das geht ja mit delete. Allerdings funktioniert das nicht, wenn ich z.B. &quot;delete anfang_liste;&quot;. Da gibt es immer Fehler.</p>
</blockquote>
<p>ARGHHHH!!!!!!!!!<br />
Es wäre nett, wenn du auch noch mitteilen könntest, welcher Fehler das ist.</p>
<p>Steffenn schrieb:</p>
<blockquote>
<p>WÄre toll, wenn mir da jemand helfen könnte und weiß, wie man den Speicher dann wieder freigeben kann.</p>
</blockquote>
<p>Kann aber keiner, da du nicht sagst, welchen Fehler du hast.</p>
<p>Wie du den Speicher freigibst: ganz einfach:</p>
<pre><code class="language-cpp">void freeList (Node * node)
{
   if (node != 0) {
      freeList (node-&gt;next);
      delete node;
   }
}
</code></pre>
<p>Ende der Liste muss nicht freigegeben werden, den Rest einfach rekursiv freigeben, was am meisten Sinn macht, da es ja eine rekursive Struktur ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/967284</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/967284</guid><dc:creator><![CDATA[Helium]]></dc:creator><pubDate>Sun, 15 Jan 2006 16:49:39 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische Listen...Speicherfreigabe on Sun, 15 Jan 2006 16:44:33 GMT]]></title><description><![CDATA[<p>@edit zu langsam</p>
]]></description><link>https://www.c-plusplus.net/forum/post/967288</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/967288</guid><dc:creator><![CDATA[moe szyslak]]></dc:creator><pubDate>Sun, 15 Jan 2006 16:44:33 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische Listen...Speicherfreigabe on Sun, 15 Jan 2006 16:46:41 GMT]]></title><description><![CDATA[<p>Helium schrieb:</p>
<blockquote>
<pre><code class="language-cpp">void freeList (Node * node)
{
   if (node != 0) {
      freeList (node);
      delete node;
   }
}
</code></pre>
</blockquote>
<p>Moment, da versuchst du ja immer das selbe Element zu loeschen. Das gibt ne Endlosschleife!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/967293</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/967293</guid><dc:creator><![CDATA[moe szyslak]]></dc:creator><pubDate>Sun, 15 Jan 2006 16:46:41 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische Listen...Speicherfreigabe on Sun, 15 Jan 2006 16:49:02 GMT]]></title><description><![CDATA[<p>Ups, Danke.</p>
<p>Sollte natürlich<br />
freeList (node-&gt;next);<br />
sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/967298</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/967298</guid><dc:creator><![CDATA[Helium]]></dc:creator><pubDate>Sun, 15 Jan 2006 16:49:02 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische Listen...Speicherfreigabe on Sun, 15 Jan 2006 22:14:51 GMT]]></title><description><![CDATA[<p>vielleicht hast du anfang_liste nicht als zeiger deklariert? damit wir dir genaueres sagen können mußt du deinen programmquelltext hier posten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/967595</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/967595</guid><dc:creator><![CDATA[Konfusius]]></dc:creator><pubDate>Sun, 15 Jan 2006 22:14:51 GMT</pubDate></item></channel></rss>