<?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[Rekursion - mögliche Problematik]]></title><description><![CDATA[<p>Mir fiel grad ein, was ist eigentlich wenn in einer Funktion, die sich rekursiv immer wieder aufruft, objekte mit new erstellt werden und nicht sofort gelöscht werden.</p>
<p>Zum verdeutlichen:</p>
<pre><code class="language-cpp">void tuirgendwas(int IrgendeinParameter)
{
    // ein haufen schrott :D
    SuperNutzlosKlasse HEY = new SuperNutzlosKlasse;
    if (IrgendeinParameter == Variable_aus_dem_haufen_Schrott)
    {
        tuirgendwas(Variable_aus_dem_haufen_Schrott);
    }
    delete HEY; 
}
</code></pre>
<p>müsste da nicht der Speicher zumüllen, bei häufigem wiederholen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/270864/rekursion-mögliche-problematik</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 22:11:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/270864.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 19 Jul 2010 14:56:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Rekursion - mögliche Problematik on Mon, 19 Jul 2010 14:56:55 GMT]]></title><description><![CDATA[<p>Mir fiel grad ein, was ist eigentlich wenn in einer Funktion, die sich rekursiv immer wieder aufruft, objekte mit new erstellt werden und nicht sofort gelöscht werden.</p>
<p>Zum verdeutlichen:</p>
<pre><code class="language-cpp">void tuirgendwas(int IrgendeinParameter)
{
    // ein haufen schrott :D
    SuperNutzlosKlasse HEY = new SuperNutzlosKlasse;
    if (IrgendeinParameter == Variable_aus_dem_haufen_Schrott)
    {
        tuirgendwas(Variable_aus_dem_haufen_Schrott);
    }
    delete HEY; 
}
</code></pre>
<p>müsste da nicht der Speicher zumüllen, bei häufigem wiederholen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1928656</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1928656</guid><dc:creator><![CDATA[5cript]]></dc:creator><pubDate>Mon, 19 Jul 2010 14:56:55 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursion - mögliche Problematik on Mon, 19 Jul 2010 15:01:09 GMT]]></title><description><![CDATA[<p>Nö, warum? Wird doch später ein delete gemacht, wenn die Funktionen dazwischen zurückkehren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1928662</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1928662</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 19 Jul 2010 15:01:09 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursion - mögliche Problematik on Mon, 19 Jul 2010 15:05:12 GMT]]></title><description><![CDATA[<p>Solange tuirgendwas keine Exception wirft ist alles gut... deine Code ist ein gutes Beispiel, wie RAII Code robuster machen kann (hier würde sogar ein auto_ptr reichen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1928665</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1928665</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Mon, 19 Jul 2010 15:05:12 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursion - mögliche Problematik on Mon, 19 Jul 2010 15:06:21 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Nö, warum? Wird doch später ein delete gemacht, wenn die Funktionen dazwischen zurückkehren.</p>
</blockquote>
<pre><code class="language-cpp">void tuirgendwas(int IrgendeinParameter)
{
    // HIER:

    // ein haufen schrott :D
    SuperNutzlosKlasse HEY = new SuperNutzlosKlasse;
    if (IrgendeinParameter == Variable_aus_dem_haufen_Schrott)
    {
        tuirgendwas(Variable_aus_dem_haufen_Schrott);
    }
    delete HEY;
}
</code></pre>
<p>aber wenn</p>
<pre><code class="language-cpp">if (IrgendeinParameter == Variable_aus_dem_haufen_Schrott)
</code></pre>
<p>immer zu 99,99% warscheinlichkeit immer wahr ist ? würden doch ein Haufen &quot;SuperNutzlos&quot; Klassen erstellt werden und erst &quot;ganz spät&quot; wieder gelöscht. Oder angenommen das ganze hat ein Fehler und</p>
<pre><code class="language-cpp">if (IrgendeinParameter == Variable_aus_dem_haufen_Schrott)
</code></pre>
<p>ist IMMER wahr, krieg ich dann nicht irgendwann ein bösen Speicherüberlauf ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1928669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1928669</guid><dc:creator><![CDATA[5cript]]></dc:creator><pubDate>Mon, 19 Jul 2010 15:06:21 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursion - mögliche Problematik on Mon, 19 Jul 2010 15:10:22 GMT]]></title><description><![CDATA[<p>Ja, das stimmt, aber das sind allgemeine Probleme bei Rekursion, dass irgendwann dein Speicher voll ist. Ob die Objekte dabei auf dem Stack oder dem Heap liegen ist unerheblich. Und wenn die Abbruchbedingung nicht stimmt, dann scheitert deine Rekursion ohnehin immer.</p>
<p>Du hättest exakt das gleiche wenn du dies schreiben würdest:</p>
<pre><code class="language-cpp">void tuirgendwas(int IrgendeinParameter)
{
    SuperNutzlosKlasse HEY;
    if (IrgendeinParameter == Variable_aus_dem_haufen_Schrott)
    {
        tuirgendwas(Variable_aus_dem_haufen_Schrott);
    }
}
</code></pre>
<p>Genau gleiches Problem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1928672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1928672</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 19 Jul 2010 15:10:22 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursion - mögliche Problematik on Mon, 19 Jul 2010 15:10:24 GMT]]></title><description><![CDATA[<p>Das ist zwar immer das Problem bei Rekursionen, aber eine große Klasse (weiß ja nicht, was du damit sonst noch anstellst) würde den Prozess natürlich beschleunigen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1928676</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1928676</guid><dc:creator><![CDATA[Heimelchen]]></dc:creator><pubDate>Mon, 19 Jul 2010 15:10:24 GMT</pubDate></item></channel></rss>