<?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[statischer Vektor (bad_alloc) kein delete?]]></title><description><![CDATA[<pre><code class="language-cpp">My Class
{
public:
    bool addMyClass(MyClass *);

private:
    static vector&lt;MyClass *&gt; pMyClassVektor;
};

vector&lt;MyClass *&gt; MyClass::pMyClassVektor(0);

bool MyClass::addMyClass(MyClass * myClass)
{ 
    bool geklappt = false;

    if (!vergleicheMyClassId(myClass))
    {
        try
        {
            pMyClassVektor.push_back(myClass);
            geklappt = true;
        }
        catch (bad_alloc)
        {
            cout &lt;&lt; &quot;Kein Speicher mehr fuer pMyClassVektor\n&quot;;
        }
    }
    return geklappt;
}
</code></pre>
<p>Annahme:<br />
statischer Vektor erfordert vorher festgelegte Groesse<br />
diese kann allerdings mit push_back(), erase() und<br />
insert() verändert werden.<br />
Das kann dann allerdings einen bad_alloc auslösen.<br />
Frage: Ist das so richtig?</p>
<p>Außerdem: An welcher Stelle muss ich ein delete auf pMyClassVektor absetzen?<br />
Im Destruktor kann ich das ja wohl kaum machen, da dieser ja bei jeder Instanz aufgerufen wird. Er müßte also erst beim löschen der letzten Instanz dieser Klasse ein solches delete aufgerufen werden!!??</p>
<p>Naja, hoffe ihr versteht mich <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>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/165927/statischer-vektor-bad_alloc-kein-delete</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 01:50:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/165927.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 24 Nov 2006 10:58:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to statischer Vektor (bad_alloc) kein delete? on Fri, 24 Nov 2006 10:58:41 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">My Class
{
public:
    bool addMyClass(MyClass *);

private:
    static vector&lt;MyClass *&gt; pMyClassVektor;
};

vector&lt;MyClass *&gt; MyClass::pMyClassVektor(0);

bool MyClass::addMyClass(MyClass * myClass)
{ 
    bool geklappt = false;

    if (!vergleicheMyClassId(myClass))
    {
        try
        {
            pMyClassVektor.push_back(myClass);
            geklappt = true;
        }
        catch (bad_alloc)
        {
            cout &lt;&lt; &quot;Kein Speicher mehr fuer pMyClassVektor\n&quot;;
        }
    }
    return geklappt;
}
</code></pre>
<p>Annahme:<br />
statischer Vektor erfordert vorher festgelegte Groesse<br />
diese kann allerdings mit push_back(), erase() und<br />
insert() verändert werden.<br />
Das kann dann allerdings einen bad_alloc auslösen.<br />
Frage: Ist das so richtig?</p>
<p>Außerdem: An welcher Stelle muss ich ein delete auf pMyClassVektor absetzen?<br />
Im Destruktor kann ich das ja wohl kaum machen, da dieser ja bei jeder Instanz aufgerufen wird. Er müßte also erst beim löschen der letzten Instanz dieser Klasse ein solches delete aufgerufen werden!!??</p>
<p>Naja, hoffe ihr versteht mich <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>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180608</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180608</guid><dc:creator><![CDATA[blueheart]]></dc:creator><pubDate>Fri, 24 Nov 2006 10:58:41 GMT</pubDate></item><item><title><![CDATA[Reply to statischer Vektor (bad_alloc) kein delete? on Fri, 24 Nov 2006 11:07:50 GMT]]></title><description><![CDATA[<p>blueheart schrieb:</p>
<blockquote>
<p>Annahme:<br />
statischer Vektor erfordert vorher festgelegte Groesse<br />
diese kann allerdings mit push_back(), erase() und<br />
insert() verändert werden.<br />
Das kann dann allerdings einen bad_alloc auslösen.<br />
Frage: Ist das so richtig?</p>
</blockquote>
<p>Ja, das ist richtig (allerdings mußt du schon sehr verschwenderisch mit deinem Speicher umgehen, ehe es zu Problemen kommt).</p>
<blockquote>
<p>Außerdem: An welcher Stelle muss ich ein delete auf pMyClassVektor absetzen?<br />
Im Destruktor kann ich das ja wohl kaum machen, da dieser ja bei jeder Instanz aufgerufen wird. Er müßte also erst beim löschen der letzten Instanz dieser Klasse ein solches delete aufgerufen werden!!??</p>
</blockquote>
<p>Den Vector selber mußt du gar nicht delete'n - das macht dein Programm automatisch, wenn es beendet wird. Wenn du dir Sorgen um die Vector-Elemente machst, könntest du im Ernstfall eine atexit()-Funktion registrieren, die dir hinterherräumt (nur wenn du die einzufügenden Objekte mit new angelegt hast).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180619</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 24 Nov 2006 11:07:50 GMT</pubDate></item><item><title><![CDATA[Reply to statischer Vektor (bad_alloc) kein delete? on Fri, 24 Nov 2006 11:16:15 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Wenn du dir Sorgen um die Vector-Elemente machst, könntest du im Ernstfall eine atexit()-Funktion registrieren, die dir hinterherräumt (nur wenn du die einzufügenden Objekte mit new angelegt hast).</p>
</blockquote>
<p>Das ist ne gute Idee, da ich zufälliger Weise auch die Objekte mit new erzeuge.</p>
<p>Danke schön</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180622</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180622</guid><dc:creator><![CDATA[blueheart]]></dc:creator><pubDate>Fri, 24 Nov 2006 11:16:15 GMT</pubDate></item></channel></rss>