<?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[Maximale Heapgröße ändern]]></title><description><![CDATA[<p>Hallo,<br />
ich hoffe mal, die Frage passt in diese Kategorie...<br />
Ich habe ein Programm, in dem ich ein sehr großes Array benutzen möchte. Irgendwann bekomme ich allerdings</p>
<blockquote>
<p>terminate called after throwing an instance of 'std::bad_alloc'<br />
what(): std::bad_alloc<br />
Aborted</p>
</blockquote>
<p>oder einfach nur</p>
<blockquote>
<p>Killed</p>
</blockquote>
<p>Kann man die maximale Heapgröße manipulieren oder gibt es sonst irgendwelche <em>Tricks</em>?</p>
<p>Ich benutze C++ / g++ / Ubuntu10.04 32bit</p>
<p>Viele Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/277879/maximale-heapgröße-ändern</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 16:28:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/277879.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 25 Nov 2010 22:46:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Maximale Heapgröße ändern on Thu, 25 Nov 2010 22:46:47 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich hoffe mal, die Frage passt in diese Kategorie...<br />
Ich habe ein Programm, in dem ich ein sehr großes Array benutzen möchte. Irgendwann bekomme ich allerdings</p>
<blockquote>
<p>terminate called after throwing an instance of 'std::bad_alloc'<br />
what(): std::bad_alloc<br />
Aborted</p>
</blockquote>
<p>oder einfach nur</p>
<blockquote>
<p>Killed</p>
</blockquote>
<p>Kann man die maximale Heapgröße manipulieren oder gibt es sonst irgendwelche <em>Tricks</em>?</p>
<p>Ich benutze C++ / g++ / Ubuntu10.04 32bit</p>
<p>Viele Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1985895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1985895</guid><dc:creator><![CDATA[xrismf]]></dc:creator><pubDate>Thu, 25 Nov 2010 22:46:47 GMT</pubDate></item><item><title><![CDATA[Reply to Maximale Heapgröße ändern on Thu, 25 Nov 2010 23:33:46 GMT]]></title><description><![CDATA[<p>Nur zur Sicherheit vorweg: Belegst du wirklich mit new[] Speicher auf dem Heap oder hast du ein Array auf dem Stack?</p>
<p>Du kannst theoretisch beliebig viel Speicher auf dem Heap anfordern. Das Betriebssystem gibt dir nur irgendwann ne Sperre, was bei deinem 32-Bit-OS schon relativ früh sein sollte (1 GB vielleicht? Vorsicht, Halbwissen). Als Erstes würd ich mir an deiner Stelle überlegen, ob so ein großes Array wirklich notwendig ist. Was ist denn der Verwendungszweck? Wenn du dann zu dem Schluss kommst, dass die Größe nicht sinnvoll verringert werden kann, kannst du versuchen , den Speicher über mehrere kleinere Allokationen zu erhalten, denn wenn du alles an einem Stück allokierst, muss auch ein entsprechend großes Stück im Freispeicher <em>an einem Stück</em> frei sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1985907</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1985907</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Thu, 25 Nov 2010 23:33:46 GMT</pubDate></item><item><title><![CDATA[Reply to Maximale Heapgröße ändern on Thu, 25 Nov 2010 23:44:29 GMT]]></title><description><![CDATA[<p>Du könntest die std::deque konsultieren, die teilt den Speicher in mehrere Blöcke auf (anders als std::vector, der alles an einem Stück hat).</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/20068">@Michael</a> E: bad_alloc kommt nur bei new, also nix mit Stack.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1985909</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1985909</guid><dc:creator><![CDATA[Dachdecker]]></dc:creator><pubDate>Thu, 25 Nov 2010 23:44:29 GMT</pubDate></item><item><title><![CDATA[Reply to Maximale Heapgröße ändern on Thu, 25 Nov 2010 23:49:01 GMT]]></title><description><![CDATA[<p>Dachdecker schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/20068">@Michael</a> E: bad_alloc kommt nur bei new, also nix mit Stack.</p>
</blockquote>
<p>Bezieht sich auf &quot;oder einfach nur 'killed'&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1985910</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1985910</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Thu, 25 Nov 2010 23:49:01 GMT</pubDate></item><item><title><![CDATA[Reply to Maximale Heapgröße ändern on Fri, 26 Nov 2010 00:09:47 GMT]]></title><description><![CDATA[<p>Danke für den Tipp mit std::deque. Weiß jemand genauer, wo vom Betriebssystem her die Grenze bzgl der Größe besteht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1985915</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1985915</guid><dc:creator><![CDATA[xrismf]]></dc:creator><pubDate>Fri, 26 Nov 2010 00:09:47 GMT</pubDate></item><item><title><![CDATA[Reply to Maximale Heapgröße ändern on Fri, 26 Nov 2010 08:16:10 GMT]]></title><description><![CDATA[<p>Meiner Meinung nach ist std::deque nicht für viele kleine Elemente geeignet, da die Blöcke relativ klein sind und durch die Verwaltungsinformationen ein relativ großer Overhead entsteht. Ich hab´s mir vor längerer Zeit mit den STL Implementationen von SGI und Dinkumware angeguckt, da ist der Speicherverbrauch förmlich explodiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1985968</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1985968</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Fri, 26 Nov 2010 08:16:10 GMT</pubDate></item><item><title><![CDATA[Reply to Maximale Heapgröße ändern on Fri, 26 Nov 2010 10:45:56 GMT]]></title><description><![CDATA[<p>xrismf schrieb:</p>
<blockquote>
<p>Weiß jemand genauer, wo vom Betriebssystem her die Grenze bzgl der Größe besteht?</p>
</blockquote>
<p>Das ist auf Unixen konfigurierbar. &quot;ulinmit -a&quot; zeigt dir die aktuelle Konfiguration an. Wenn dein 32-Bit Ubuntu kein PAE-Kernel ist, gibt's natürlich noch die 4GB Grenze. In einem Ubuntu-Forum kann man dir bestimmt mehr sagen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1986037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1986037</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Fri, 26 Nov 2010 10:45:56 GMT</pubDate></item><item><title><![CDATA[Reply to Maximale Heapgröße ändern on Fri, 26 Nov 2010 13:37:28 GMT]]></title><description><![CDATA[<p>Danke, werde eich tun <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/1986196</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1986196</guid><dc:creator><![CDATA[re]]></dc:creator><pubDate>Fri, 26 Nov 2010 13:37:28 GMT</pubDate></item><item><title><![CDATA[Reply to Maximale Heapgröße ändern on Fri, 26 Nov 2010 17:51:09 GMT]]></title><description><![CDATA[<p>DocShoe schrieb:</p>
<blockquote>
<p>Meiner Meinung nach ist std::deque nicht für viele kleine Elemente geeignet, da die Blöcke relativ klein sind und durch die Verwaltungsinformationen ein relativ großer Overhead entsteht.</p>
</blockquote>
<p>Meinst du nicht <code>std::list</code> ? Zur <code>std::deque</code> kann ich allerdings wenig Praktisches sagen, da ich sie bisher kaum in kritischen Situationen benutzt habe.</p>
<p>Zur Not kann man sich auch was wie <code>std::vector&lt; std::vector&lt;T&gt; &gt;</code> basteln und schön kapseln.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1986354</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1986354</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 26 Nov 2010 17:51:09 GMT</pubDate></item></channel></rss>