<?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[Segmentation fault]]></title><description><![CDATA[<p>Mit n = 1200000 läuft mein Programm fehlerfrei, mit n = 1400000 kommt ein Segmentation fault.</p>
<p>Woran könnte sowas liegen? Da der Quellcode ziemlich lang ist, möchte ich ihn hier nicht posten. Meine Vermutung wäre jetzt, dass es Probleme macht, große Arrays der Größe n (mit new) zu erstellen, obwohl genug Speicher frei ist. Kann sowas sein?</p>
<p>Wie überprüfe ich, ob ein Aufruf von new fehlschlägt?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/302963/segmentation-fault</link><generator>RSS for Node</generator><lastBuildDate>Tue, 11 Aug 2026 00:51:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/302963.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 02 May 2012 08:38:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Segmentation fault on Wed, 02 May 2012 08:38:58 GMT]]></title><description><![CDATA[<p>Mit n = 1200000 läuft mein Programm fehlerfrei, mit n = 1400000 kommt ein Segmentation fault.</p>
<p>Woran könnte sowas liegen? Da der Quellcode ziemlich lang ist, möchte ich ihn hier nicht posten. Meine Vermutung wäre jetzt, dass es Probleme macht, große Arrays der Größe n (mit new) zu erstellen, obwohl genug Speicher frei ist. Kann sowas sein?</p>
<p>Wie überprüfe ich, ob ein Aufruf von new fehlschlägt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207451</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207451</guid><dc:creator><![CDATA[Ramanujan]]></dc:creator><pubDate>Wed, 02 May 2012 08:38:58 GMT</pubDate></item><item><title><![CDATA[Reply to Segmentation fault on Wed, 02 May 2012 08:43:26 GMT]]></title><description><![CDATA[<p>Ramanujan schrieb:</p>
<blockquote>
<p>Wie überprüfe ich, ob ein Aufruf von new fehlschlägt?</p>
</blockquote>
<p>Dann fliegt 'ne Exception. Der Fehler, der bei einer ungefangenen Exception vom LZS ausgespuckt wird, ist aber eigentlich nie ein Segfault. Du hast ein anderes Problem. Ich tippe auf viel Low-Level-Gefrickel mit C-In-Klassen<sup>TM</sup></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207454</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207454</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Wed, 02 May 2012 08:43:26 GMT</pubDate></item><item><title><![CDATA[Reply to Segmentation fault on Wed, 02 May 2012 08:46:00 GMT]]></title><description><![CDATA[<p>Ramanujan schrieb:</p>
<blockquote>
<p>Woran könnte sowas liegen?</p>
</blockquote>
<p>vermutlich an n. Direkt oder indirekt.</p>
<blockquote>
<p>Da der Quellcode ziemlich lang ist, möchte ich ihn hier nicht posten.</p>
</blockquote>
<p>Dann wirf ein paar Teile raus, die deiner Meinung nach nicht zum Fehler beitragen, kompilier es und schau ob der Fehler immernoch auftritt (Wenn nicht, hast du die Ursache rausgeworfen). Mach das Ganze ein paarmal, so oft bis du nichts unwesentliches mehr drin hast. Dann dürften es nicht mehr allzu viele Zeilen sein und du kannst es posten.</p>
<blockquote>
<p>Meine Vermutung wäre jetzt, dass es Probleme macht, große Arrays der Größe n (mit new) zu erstellen, obwohl genug Speicher frei ist. Kann sowas sein?</p>
</blockquote>
<p>Kann sein, ja. Wenn der Speicher nur in kleinen Stücken frei ist und du ein großes Array (= großes, zusammenhängendes Stück) anforderst, könnte das probleme geben.</p>
<blockquote>
<p>Wie überprüfe ich, ob ein Aufruf von new fehlschlägt?</p>
</blockquote>
<p>Indem du die Exception fängst, die new wirft. Sollte alles im Lehrbuch deiner Wahl im passenden Kapitel stehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207456</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207456</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 02 May 2012 08:46:00 GMT</pubDate></item><item><title><![CDATA[Reply to Segmentation fault on Wed, 02 May 2012 11:09:56 GMT]]></title><description><![CDATA[<p>Du kannst ja jetzt aus Spaß mal das hier machen:</p>
<pre><code class="language-cpp">#include &lt;new&gt; //Edit:Hier ist ein SH-Bug

void AllocationError () 
{
    cout &lt;&lt; &quot;Failed to allocate memory with 'new'!\n&quot;;
    std::exit (255);
}

int main()
{
    //...
    set_new_handler(AllocationError);
}
</code></pre>
<p>Oder gleich mit Lambdas.<br />
Dasch geht auch:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;exception&gt;

int main()
{
    long double *ptr;
    try
    {
          ptr = new long double[1000 * 1000 * 1000];
          delete [] ptr;
    }
    catch(std::bad_alloc&amp; b)
    {
          std::cerr &lt;&lt; &quot;Error allocating memory with new!\n&quot; &lt;&lt; b.what() &lt;&lt; '\n';//Edit: Danke an Tyrroxx
          return 255;
    }
}
</code></pre>
<p>untegestet</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207464</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207464</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 02 May 2012 11:09:56 GMT</pubDate></item><item><title><![CDATA[Reply to Segmentation fault on Wed, 02 May 2012 10:33:37 GMT]]></title><description><![CDATA[<p>Hacker schrieb:</p>
<blockquote>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;exception&gt;

int main()
{
    long double *ptr;
    try
    {
          ptr = new long double[1000 * 1000 * 1000];
          delete [] ptr;
    }
    catch(std::bad_alloc&amp; b)
    {
          std::cerr &lt;&lt; &quot;Error allocating memory with new!\n&quot; &lt;&lt; b.what() &lt;&lt; '\n';
          delete [] ptr;
          return 255;
    }
}
</code></pre>
<p>untegestet</p>
</blockquote>
<p>gcc schrieb:</p>
<blockquote>
<p>Warnung: »ptr« könnte in dieser Funktion uninitialisiert verwendet werden [-Wuninitialized]</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2207503</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207503</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Wed, 02 May 2012 10:33:37 GMT</pubDate></item><item><title><![CDATA[Reply to Segmentation fault on Wed, 02 May 2012 10:55:40 GMT]]></title><description><![CDATA[<p>TyRoXx schrieb:</p>
<blockquote>
<p>gcc schrieb:</p>
<blockquote>
<p>Warnung: »ptr« könnte in dieser Funktion uninitialisiert verwendet werden [-Wuninitialized]</p>
</blockquote>
</blockquote>
<p>Das delete im catch-Handler ist ja auch überflüssig. Wenns ein bad_alloc gibt, dann aus dem new, und dann hat erstens ptr noch nichts zugewiesen bekommen (daher die Warnung), und zweitens gibts dann auch nichts zu deleten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207511</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207511</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 02 May 2012 10:55:40 GMT</pubDate></item><item><title><![CDATA[Reply to Segmentation fault on Wed, 02 May 2012 11:10:18 GMT]]></title><description><![CDATA[<p>War ja auch ungetestet, meine Güte. Hätte dann ja auch die Warnung gesehen. <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="🙂"
    /><br />
Andererseits funktioniert es bei mir trotzdem prima.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207523</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207523</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 02 May 2012 11:10:18 GMT</pubDate></item><item><title><![CDATA[Reply to Segmentation fault on Wed, 02 May 2012 11:18:51 GMT]]></title><description><![CDATA[<p>Hacker schrieb:</p>
<blockquote>
<p>War ja auch ungetestet,</p>
</blockquote>
<p>Nö, es war untegestet, und das ist was ganz anderes.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207530</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207530</guid><dc:creator><![CDATA[arghonaut]]></dc:creator><pubDate>Wed, 02 May 2012 11:18:51 GMT</pubDate></item><item><title><![CDATA[Reply to Segmentation fault on Wed, 02 May 2012 11:20:29 GMT]]></title><description><![CDATA[<p>Hacker schrieb:</p>
<blockquote>
<p>War ja auch ungetestet, meine Güte. Hätte dann ja auch die Warnung gesehen. <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="🙂"
    /><br />
Andererseits funktioniert es bei mir trotzdem prima.</p>
</blockquote>
<p>Bei mir rumst es, weil ich delete[] auf 'nem uninitialisierten Pointer ausführe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207532</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207532</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Wed, 02 May 2012 11:20:29 GMT</pubDate></item><item><title><![CDATA[Reply to Segmentation fault on Wed, 02 May 2012 12:02:53 GMT]]></title><description><![CDATA[<p>Tachyon schrieb:</p>
<blockquote>
<p>Hacker schrieb:</p>
<blockquote>
<p>War ja auch ungetestet, meine Güte. Hätte dann ja auch die Warnung gesehen. <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="🙂"
    /><br />
Andererseits funktioniert es bei mir trotzdem prima.</p>
</blockquote>
<p>Bei mir rumst es, weil ich delete[] auf 'nem uninitialisierten Pointer ausführe.</p>
</blockquote>
<p>Komisch.. Ich führe es aus:</p>
<p>Codeblocks console runner schrieb:</p>
<blockquote>
<p>Error allocating memory with new!<br />
std::bad_alloc</p>
<p>Process returned 255 (0xFF) execution time : 0.013 s<br />
Press any key to continue.</p>
</blockquote>
<p>Danach presse ich einfach was, und das Ding verschwindet.<br />
Ist das vielleicht IB (auch wenn ich mir verdammt sicher bin, dass der Standard das berücksichtigt)? Und was heißt bei dir rumsen?</p>
<p>@arghonaut: Hör auf mit <strong>der</strong> Scheiße.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207545</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 02 May 2012 12:02:53 GMT</pubDate></item><item><title><![CDATA[Reply to Segmentation fault on Wed, 02 May 2012 11:54:21 GMT]]></title><description><![CDATA[<p>Es ist UB, und so obv.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207548</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Wed, 02 May 2012 11:54:21 GMT</pubDate></item><item><title><![CDATA[Reply to Segmentation fault on Wed, 02 May 2012 12:00:21 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>und so obv.</p>
</blockquote>
<p>Was?</p>
<p>Ich hab übrigens den Stanard-Teil gefunden:</p>
<p>3.7.4.1, Klausel 3:</p>
<p>C++-Standard schrieb:</p>
<blockquote>
<p>An allocation function that fails to allocate storage can invoke the currently installed new-handler function, if any. [...(note)] If an allocation<br />
function declared with a non-throwing exception-specification fails to allocate storage, it shall return<br />
a null pointer. Any other allocation function that fails to allocate storage shall indicate failure <strong>only</strong> by<br />
throwing an exception of a type that would match a handler (15.3) of type std::bad_alloc (18.6.2.1).</p>
</blockquote>
<p>Klausel 2 von 3.7.4 sagt, diese Funktionen sind die globalen:</p>
<pre><code class="language-cpp">void* operator new(std::size_t);
void* operator new[](std::size_t);//Keine exception-specification
void operator delete(void*);
void operator delete[](void*);
</code></pre>
<p>Also ist das kein UB.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207549</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207549</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 02 May 2012 12:00:21 GMT</pubDate></item><item><title><![CDATA[Reply to Segmentation fault on Wed, 02 May 2012 12:05:47 GMT]]></title><description><![CDATA[<p>Hacker schrieb:</p>
<blockquote>
<p>Ich hab übrigens den Stanard-Teil gefunden:</p>
</blockquote>
<p>Nee, das ist nicth der richtige Standard-Teil:</p>
<p>Ich schreib mal was dein Code macht:</p>
<pre><code class="language-cpp">long double *ptr; // = 0xirgendwas
    try
    {
          ptr = new long double[1000 * 1000 * 1000];
          //heißt:
          //1) rufe operator new auf (wirft exception)
          //2) weise das Ergebnis ptr zu. HIER KOMMST DU NIE HIN
    }
    catch(std::bad_alloc&amp; b)
    {
          //ptr hat hier immernoch den Wert 0xirgendwas
          std::cerr &lt;&lt; &quot;Error allocating memory with new!\n&quot; &lt;&lt; b.what() &lt;&lt; '\n';//Edit: Danke an Tyrroxx
          delete[] ptr; // also delete 0xirgendwas - AUTSCH
          return 255;
    }
}
</code></pre>
<p>Dass es bei dir nicht kracht, ist vielleicht darauf zurückzuführen, dass dein Compiler im Debug-Build Variablen pauschal mit 0 initialisiert - delete NULL ist dann harmlos. Versuchs mal im Release-Build, oder weise ptr bei der Initialisierung explizit irgendeinen Müll zu.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207553</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207553</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 02 May 2012 12:05:47 GMT</pubDate></item><item><title><![CDATA[Reply to Segmentation fault on Wed, 02 May 2012 12:08:20 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Dein delete im catch-Block ist UB du Pflaume.</p>
</blockquote>
<blockquote>
<p>the behavior is undefined if the value supplied to operator<br />
delete[](void*) in the standard library is not one of the values returned by a previous invocation of<br />
either operator new[](std::size_t) or operator new[](std::size_t, const std::nothrow_t&amp;) in the<br />
standard library.</p>
</blockquote>
<p>Na gut, hast Recht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
<p>Edit: <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9960">@pumuckl</a>: Immer noch alles gut... :p</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;exception&gt;

int main()
{
    long double *ptr(0x16848486);
    try
    {
          ptr = new long double[1000 * 1000 * 1000];
          delete [] ptr;
    }
    catch(std::bad_alloc&amp; b)
    {
          std::cerr &lt;&lt; &quot;Error allocating memory with new!\n&quot; &lt;&lt; b.what() &lt;&lt; '\n';
          delete [] ptr;
          return 255;
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2207555</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207555</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 02 May 2012 12:08:20 GMT</pubDate></item><item><title><![CDATA[Reply to Segmentation fault on Wed, 02 May 2012 12:11:11 GMT]]></title><description><![CDATA[<p>Ich habe den Fehler gefunden:<br />
Es war noch relativ alter Code und damals wusste ich nicht, dass man sowas hier nicht machen sollte:</p>
<pre><code class="language-cpp">double b[n];
</code></pre>
<p>Ich hab es jetzt durch</p>
<pre><code class="language-cpp">vector&lt;double&gt; b(n)
</code></pre>
<p>ersetzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207558</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207558</guid><dc:creator><![CDATA[Ramanujan]]></dc:creator><pubDate>Wed, 02 May 2012 12:11:11 GMT</pubDate></item><item><title><![CDATA[Reply to Segmentation fault on Wed, 02 May 2012 12:11:51 GMT]]></title><description><![CDATA[<p>O.O du bist ja auch noch da.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207559</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207559</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 02 May 2012 12:11:51 GMT</pubDate></item><item><title><![CDATA[Reply to Segmentation fault on Wed, 02 May 2012 12:29:55 GMT]]></title><description><![CDATA[<p>Ramanujan schrieb:</p>
<blockquote>
<p>Ich habe den Fehler gefunden:<br />
Es war noch relativ alter Code und damals wusste ich nicht, dass man sowas hier nicht machen sollte:</p>
<pre><code class="language-cpp">double b[n];
</code></pre>
<p>Ich hab es jetzt durch</p>
<pre><code class="language-cpp">vector&lt;double&gt; b(n)
</code></pre>
<p>ersetzt.</p>
</blockquote>
<p>Gute Idee <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Das war übrigens nicht nur alt, sondern auch falsch, da, wenn n keine Compilezeitkonstante ist, du da eine spezielle Compilererweiterung benutzt, die, soweit ich weiß, nur der GCC kennt. Der Fehler ist übrigens, dass du vorher das Array auf dem Stack (d.h. dem automatischen Speicher) angelegt hast. Normalerweise hat der eine recht restriktive Obergröße (meistens im einstelligen oder niedrigen zweistelligen Megabytebereich), sofern man nichts dagegen unternimmt (aber da sollte man gute Gründe für haben). Bei 1400000 double, das sind auf den meisten Systemen gut 10 MB, war dann einfach Schluss. vector legt die Daten im dynamischen Speicher (dem Heap) ab, da bist du normalerweise nur durch die vorhandene Hardware und/oder die Fähigkeiten des Betriebssystems beschränkt.</p>
<p>P.S.: Da ich die Begriffe etwas unklar benutzt habe eine Erläuterung: Der C++-Standard beschreibt drei (seit C++11 vier) verschiedenen Speicherarten von Variablen: statisch, automatisch und dynamisch. Stack (automatisch), Heap (dynamisch) und Datensegment (statisch) sind eine, aber nicht die einzige, mögliche Umsetzung dieser Konzepte, die von vielen C++-Implementierungen (und so ziemlich allen anderen Compilern für andere Sprachen auch) benutzt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207561</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 02 May 2012 12:29:55 GMT</pubDate></item><item><title><![CDATA[Reply to Segmentation fault on Wed, 02 May 2012 12:41:12 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Normalerweise hat der eine recht restriktive Obergröße (meistens im einstelligen oder niedrigen zweistelligen Megabytebereich)</p>
</blockquote>
<p>AFAIR ca. 1 MB.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207566</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207566</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 02 May 2012 12:41:12 GMT</pubDate></item><item><title><![CDATA[Reply to Segmentation fault on Wed, 02 May 2012 12:43:35 GMT]]></title><description><![CDATA[<p>Hacker schrieb:</p>
<blockquote>
<p>AFAIR ca. 1 MB.</p>
</blockquote>
<p>Ist ganz plattformabhängig. Ich kann mich auf älteren Krücken an Stackoverflows bei 128MB erinnern...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207567</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207567</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 02 May 2012 12:43:35 GMT</pubDate></item><item><title><![CDATA[Reply to Segmentation fault on Wed, 02 May 2012 12:47:20 GMT]]></title><description><![CDATA[<p>Hacker schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Normalerweise hat der eine recht restriktive Obergröße (meistens im einstelligen oder niedrigen zweistelligen Megabytebereich)</p>
</blockquote>
<p>AFAIR ca. 1 MB.</p>
</blockquote>
<pre><code>[14:42:36][~][0]$ ulimit -a
...
stack size              (kbytes, -s) 8192
...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2207570</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207570</guid><dc:creator><![CDATA[pyhax]]></dc:creator><pubDate>Wed, 02 May 2012 12:47:20 GMT</pubDate></item><item><title><![CDATA[Reply to Segmentation fault on Wed, 02 May 2012 12:51:48 GMT]]></title><description><![CDATA[<p>Hab mich gerade erinnert, bei VC ist der default-wert für die stack größe 1MB. So hab ichs gelesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207571</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207571</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 02 May 2012 12:51:48 GMT</pubDate></item><item><title><![CDATA[Reply to Segmentation fault on Wed, 02 May 2012 12:59:15 GMT]]></title><description><![CDATA[<p>Es müssen (bei dem System, auf dem ich getestet habe) mindestens 9 MB gewesen, sein, sonst hätte n = 1,2M mit double nicht funktioniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207575</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207575</guid><dc:creator><![CDATA[Ramanujan]]></dc:creator><pubDate>Wed, 02 May 2012 12:59:15 GMT</pubDate></item><item><title><![CDATA[Reply to Segmentation fault on Wed, 02 May 2012 15:28:31 GMT]]></title><description><![CDATA[<p>Mal eine Frage am Rande: Wann wirft new denn jetzt eigentlich eine Exception?</p>
<p>Wenn ich dieses Programm bei mir ausführe</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;stdexcept&gt;

int main()
{
    while(true)
    {
        try
        {
            int* p = new int;
        }
        catch(std::bad_alloc&amp; e)
        {
            std::cout &lt;&lt; &quot;Exception!\n&quot;;
            std::cout &lt;&lt; e.what();
        }
    }
}
</code></pre>
<p>kann ich wunderbar im Taskmanager verfolgen, wie die Verwendung meines Arbeitsspeichers von ziemlich genau 1GB auf ziemlich genau 3GB in ein paar Sekunden anschwillt, er dann kurz bei 3GB bleibt und mein Programm dann einfach folgendes ausgibt und sich beendet:</p>
<p>&quot;This application has requested the Runtime to terminate it in an unusual way. Please contact [...].&quot;</p>
<p>Dann hab ich sofort wieder nur 1GB in Gebrauch. Nix mit &quot;Exception!&quot;.</p>
<p>Bei long double* x = new long double[fette Zahl] krieg ich sofort eine.<br />
<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/2207639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207639</guid><dc:creator><![CDATA[Incocnito]]></dc:creator><pubDate>Wed, 02 May 2012 15:28:31 GMT</pubDate></item><item><title><![CDATA[Reply to Segmentation fault on Wed, 02 May 2012 15:34:18 GMT]]></title><description><![CDATA[<p>Das mag daran liegen, dass du im catch-Block wiederum eine Exception erzeugst, nämlich wenn cout versucht, sich ein paar bytes für den buffer zu besorgen, den es für die Ausgabe braucht. Mit einzelnen ints schhsffst du es tatsächlich, wirklich <em>alles</em> was dein OS dir an Speicher zu geben vermag, nach und nach vollzupacken.</p>
<p>Das was dein Taskmanager dir anzeigt ist im Übrigen nur ein ganz grober Wert, das ist das, was das Betriebssystem für deinen Prozess reserviert hat. Mit dem, was der Prozess grade tatsächlich bemötigt/benutzt, muss das nicht viel zu tun haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207644</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207644</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 02 May 2012 15:34:18 GMT</pubDate></item><item><title><![CDATA[Reply to Segmentation fault on Wed, 02 May 2012 16:46:41 GMT]]></title><description><![CDATA[<p>Bei mir gibt es auch keine Exception:</p>
<pre><code>[18:20:08][/[i][/i]tmp][0]$ ./test 
Getötet
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>EDIT: <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="😕"
    /> Ist jetzt BB-Code deaktiviert oder warum geht das nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207674</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207674</guid><dc:creator><![CDATA[pyhax]]></dc:creator><pubDate>Wed, 02 May 2012 16:46:41 GMT</pubDate></item><item><title><![CDATA[Reply to Segmentation fault on Wed, 02 May 2012 16:48:17 GMT]]></title><description><![CDATA[<p>pyhax schrieb:</p>
<blockquote>
<p><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="😕"
    /> Ist jetzt BB-Code deaktiviert oder warum geht das nicht?</p>
</blockquote>
<p>BB versucht deinen [/tmp] tag mit dem [cpp]-Tag zu matchen und gerät durcheinander <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="😉"
    /> Lösung: [/tmp]-Tag mit einem anderen Tag-auf-zu unterbrechen:</p>
<pre><code>[/[i[b][/b&rsqb;&rsqb;&lsqb;&lsqb;b][/b]/i]tmp]
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2207686</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207686</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 02 May 2012 16:48:17 GMT</pubDate></item></channel></rss>