<?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[stack dynamisch vergrößern]]></title><description><![CDATA[<p>Hallo zusammen.<br />
Ich habe einen in C++ implementierten algorithmus der leider rekursiv läuft.<br />
Wenn ich die Funktion von VBA aus aufrufe gibt es einen stack-overflow.<br />
Den Code als Schleife zu implementieren fällt für mich aus da ich den Code nicht geschrieben habe und ihn auch nicht ganz verstehe.<br />
Weiß vielleicht jemand ob es möglich ist den Stack im Programmcode wachsen zu lassen? Finde dazu leider bei google nichts</p>
<p>Danke schonmal im voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/194551/stack-dynamisch-vergrößern</link><generator>RSS for Node</generator><lastBuildDate>Tue, 29 Sep 2026 14:55:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/194551.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 08 Oct 2007 10:14:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to stack dynamisch vergrößern on Mon, 08 Oct 2007 10:14:10 GMT]]></title><description><![CDATA[<p>Hallo zusammen.<br />
Ich habe einen in C++ implementierten algorithmus der leider rekursiv läuft.<br />
Wenn ich die Funktion von VBA aus aufrufe gibt es einen stack-overflow.<br />
Den Code als Schleife zu implementieren fällt für mich aus da ich den Code nicht geschrieben habe und ihn auch nicht ganz verstehe.<br />
Weiß vielleicht jemand ob es möglich ist den Stack im Programmcode wachsen zu lassen? Finde dazu leider bei google nichts</p>
<p>Danke schonmal im voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1380340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1380340</guid><dc:creator><![CDATA[TomTom85]]></dc:creator><pubDate>Mon, 08 Oct 2007 10:14:10 GMT</pubDate></item><item><title><![CDATA[Reply to stack dynamisch vergrößern on Mon, 08 Oct 2007 10:49:46 GMT]]></title><description><![CDATA[<p>Öhm, wie viel Rekursionen macht der denn??? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> Meinste nicht das es dann eher eine Endlos-Rekursion ist?</p>
<p>Aber die Stackgröße kannst du dem Compiler übergeben, also nicht zur Laufzeit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1380368</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1380368</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Mon, 08 Oct 2007 10:49:46 GMT</pubDate></item><item><title><![CDATA[Reply to stack dynamisch vergrößern on Mon, 08 Oct 2007 10:53:54 GMT]]></title><description><![CDATA[<p>Das kommt auf den C++ Compiler (bzw. den Linker) an. Die gängisten Compiler besitzen dafür eine Option, um den Anfangsstack als auch den Maximalwert zu setzen (der Stack wird vom Betriebssystem dann dynamisch vergrößert).<br />
Der Maximalwert beträgt meistens standardmäßig 1 MB (0x00100000).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1380377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1380377</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Mon, 08 Oct 2007 10:53:54 GMT</pubDate></item><item><title><![CDATA[Reply to stack dynamisch vergrößern on Mon, 08 Oct 2007 11:03:54 GMT]]></title><description><![CDATA[<p>Soweit ich weiß, gibt es einen dynamischen Stack nur unter den *nixen, unter Windows ist die Größe immer fest. Bei Visual-C++ kannst du dem Linker die Stackgröße mit /STACK:[Anzahl der Bytes] mitteilen...</p>
<p>Grüße,</p>
<p>Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1380385</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1380385</guid><dc:creator><![CDATA[JimmydaMage]]></dc:creator><pubDate>Mon, 08 Oct 2007 11:03:54 GMT</pubDate></item><item><title><![CDATA[Reply to stack dynamisch vergrößern on Mon, 08 Oct 2007 11:31:38 GMT]]></title><description><![CDATA[<p>achso ok.. danke schonmal im voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1380404</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1380404</guid><dc:creator><![CDATA[TomTom85]]></dc:creator><pubDate>Mon, 08 Oct 2007 11:31:38 GMT</pubDate></item><item><title><![CDATA[Reply to stack dynamisch vergrößern on Mon, 08 Oct 2007 11:31:50 GMT]]></title><description><![CDATA[<p>gib uns doch mal die wesentlichen Bestandteile des algos, vielleicht kann man den ja so umstricken, dass er iterativ verlaeuft oder anderweitig platzsparender ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1380406</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1380406</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 08 Oct 2007 11:31:50 GMT</pubDate></item><item><title><![CDATA[Reply to stack dynamisch vergrößern on Mon, 08 Oct 2007 11:33:09 GMT]]></title><description><![CDATA[<p>äh.. danke für die info mein ich</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1380407</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1380407</guid><dc:creator><![CDATA[TomTom85]]></dc:creator><pubDate>Mon, 08 Oct 2007 11:33:09 GMT</pubDate></item><item><title><![CDATA[Reply to stack dynamisch vergrößern on Mon, 08 Oct 2007 11:34:26 GMT]]></title><description><![CDATA[<p>hab mitlerweile einen anderen algorithmus im internet gefunden. Und die Rekursion war wirklich nicht zu lösen. Aber vielen dank für die Mühe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1380408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1380408</guid><dc:creator><![CDATA[TomTom85]]></dc:creator><pubDate>Mon, 08 Oct 2007 11:34:26 GMT</pubDate></item><item><title><![CDATA[Reply to stack dynamisch vergrößern on Mon, 08 Oct 2007 11:48:40 GMT]]></title><description><![CDATA[<p>OT: *gruebel* gabs nichtmal irgendeinen Beweis, dass jede Rekusrion auch iterativ loesbar ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1380417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1380417</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 08 Oct 2007 11:48:40 GMT</pubDate></item><item><title><![CDATA[Reply to stack dynamisch vergrößern on Mon, 08 Oct 2007 11:50:51 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>OT: *gruebel* gabs nichtmal irgendeinen Beweis, dass jede Rekusrion auch iterativ loesbar ist?</p>
</blockquote>
<p>Ja, die allgemeine Lösung läuft darauf hinaus, den Callstack der rekursiven Aufrufe in den Algorithmus zu integrieren <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="😉"
    /></p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/25828">@Tom</a>: Was war denn das für ein Algorithmus?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1380420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1380420</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 08 Oct 2007 11:50:51 GMT</pubDate></item><item><title><![CDATA[Reply to stack dynamisch vergrößern on Mon, 08 Oct 2007 14:18:02 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>OT: *gruebel* gabs nichtmal irgendeinen Beweis, dass jede Rekusrion auch iterativ loesbar ist?</p>
</blockquote>
<p>Mag sein. Aber ich löse ehrlich gesagt rekursive Aufgaben besser rekursiv. Das geht Gehirnmäßig einfacher, als wenn man eine rekursive Aufgabe in iterativ umdenken muß.</p>
<p>Aber der Beweis würde mich schon interessieren, keine Frage.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1380532</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1380532</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Mon, 08 Oct 2007 14:18:02 GMT</pubDate></item><item><title><![CDATA[Reply to stack dynamisch vergrößern on Mon, 08 Oct 2007 14:23:33 GMT]]></title><description><![CDATA[<p>was gibts da viel zu beweisen. bei jedem rekursiven funktionsaufruf werden lokale variablen und parameter auf den (call)stack gelegt. das macht man einfach selber, also (while)schleife und bei jedem durchgang die benötigten parameter auf einen eigenen stack.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1380538</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1380538</guid><dc:creator><![CDATA[tschatschabo]]></dc:creator><pubDate>Mon, 08 Oct 2007 14:23:33 GMT</pubDate></item><item><title><![CDATA[Reply to stack dynamisch vergrößern on Tue, 09 Oct 2007 08:39:38 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10318">@CStoll</a></p>
<p>Das war ein Algorithmus zur Berechnung einer convexen Hülle für eine Menge von Messwerten. Das Problem war folgender Code:</p>
<pre><code>protected static void quicksort(int lo, int hi)
    {
        int i=lo, j=hi;
        Point q=p[(lo+hi)/2];
        while (i&lt;=j)
        {
            while (p[i].isLess(q)) i++;
            while (q.isLess(p[j])) j--;
            if (i&lt;=j) exchange(i++, j--);
        }
        if (lo&lt;j) quicksort(lo, j);
        if (i&lt;hi) quicksort(i, hi);
    }
</code></pre>
<p>Mir ist für diesen Fall leider keine Lösung mit einer Schleife eingefallen.<br />
Und recursiver Code kommt nicht in Frage, weil die Anzahl der Messwerte nicht begrenzt ist. Können also auch viele Tausend sein.</p>
<p>mfg Tom</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381026</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381026</guid><dc:creator><![CDATA[TomTom85]]></dc:creator><pubDate>Tue, 09 Oct 2007 08:39:38 GMT</pubDate></item><item><title><![CDATA[Reply to stack dynamisch vergrößern on Tue, 09 Oct 2007 08:46:00 GMT]]></title><description><![CDATA[<p>Zum Glück ist Quicksort recht populär, da hat sich jemand schon Gedanken zu gemacht <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>//Quicksort iterativ   (im Vergleich zur rekursiven Funktion ganz schön kompliziert)
procedure sortieren(var aa:array of real;von,bis:integer);
   var p,i,j:integer;
begin
  p:=bis;
  while p&gt; 1 do Begin
    p:=p div 2;
    i:=von;
    repeat
      if aa[i+p]&lt;aa[i] then BEgin
        tausche(aa[i],aa[i+p]);
        j:=i;
        while j-p&gt;=von do BEGin
          if aa[j]&lt;aa[j-p] then bEgin
             tausche(aa[j],aa[j-p]);
             j:=pred(j)
          eNd  else j:=0;
        END;
      ENd;
      i:=succ(i)
    until i+p&gt;bis
  End;
end;
</code></pre>
<p>Ist in Delphi und einfach von <a href="http://delphi.zsg-rottenburg.de/delphif.html" rel="nofollow">hier</a> kopiert, vielleicht gehts ja.. Aber du musst wirklich viele Datensätze haben, ich hatte bei Quicksort noch nie einen Stack-Überlauf <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/1381032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381032</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Tue, 09 Oct 2007 08:46:00 GMT</pubDate></item><item><title><![CDATA[Reply to stack dynamisch vergrößern on Tue, 09 Oct 2007 08:48:34 GMT]]></title><description><![CDATA[<p>Es geht jetzt nicht ernsthaft ums sortieren ... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381036</guid><dc:creator><![CDATA[Helium]]></dc:creator><pubDate>Tue, 09 Oct 2007 08:48:34 GMT</pubDate></item><item><title><![CDATA[Reply to stack dynamisch vergrößern on Tue, 09 Oct 2007 09:04:01 GMT]]></title><description><![CDATA[<p>Öhm, also ich hab jetzt eher an eine Baumstruktur gedacht, die ich durchlaufen muß oder so. Bei sowas kommt bei mir Rekursion höchstens zum Einsatz. Ach ja, zum Sortieren, benutze ich die Standardlib. <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381050</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Tue, 09 Oct 2007 09:04:01 GMT</pubDate></item><item><title><![CDATA[Reply to stack dynamisch vergrößern on Tue, 09 Oct 2007 09:15:11 GMT]]></title><description><![CDATA[<p>Nein Stop. So wie ich das sehe ist das nicht der quicksort zum auf- oder absteigenden sortieren von Zahlen. Dieser Code hier sortiert glaub irgendwie anders. Der Sortiert irgendwie die Werte relativ zu irgend einem anderen Wert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381060</guid><dc:creator><![CDATA[TomTom85]]></dc:creator><pubDate>Tue, 09 Oct 2007 09:15:11 GMT</pubDate></item><item><title><![CDATA[Reply to stack dynamisch vergrößern on Tue, 09 Oct 2007 10:12:49 GMT]]></title><description><![CDATA[<p>TomTom85 schrieb:</p>
<blockquote>
<p>Nein Stop. So wie ich das sehe ist das nicht der quicksort zum auf- oder absteigenden sortieren von Zahlen. Dieser Code hier sortiert glaub irgendwie anders. Der Sortiert irgendwie die Werte relativ zu irgend einem anderen Wert.</p>
</blockquote>
<p>Stimmt, das ist einfach quicksort im Sinne von Point::isLess() - was sich im Grunde aufs gleiche rauskommt. Im Klartext: Wo normalerweise ein &quot;if (a &lt; b)&quot; steht, steht hier ein &quot;if a.isLess(b)&quot; - vom Sinn her ists genau das selbe wie Zahlen sortieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381110</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381110</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 09 Oct 2007 10:12:49 GMT</pubDate></item></channel></rss>