<?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[static initialisierung]]></title><description><![CDATA[<p>Kann ich eine static Klassenvariable mit new initialisieren?</p>
<pre><code>std::vector&lt;unsigned int&gt;* cGO_baseObj::lastId = new std::vector&lt;unsigned int&gt;;
</code></pre>
<p>Der compiler hat keine probleme damit aber ich bekomme nach einer weile einen Fehler: corrupted double linked list und frage mich ob das vielleicht damit etwas zu tun hat.</p>
<p>Die zeile steht in der cpp von cGO_baseObj.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/276759/static-initialisierung</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 06:50:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/276759.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 08 Nov 2010 00:59:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to static initialisierung on Mon, 08 Nov 2010 01:00:08 GMT]]></title><description><![CDATA[<p>Kann ich eine static Klassenvariable mit new initialisieren?</p>
<pre><code>std::vector&lt;unsigned int&gt;* cGO_baseObj::lastId = new std::vector&lt;unsigned int&gt;;
</code></pre>
<p>Der compiler hat keine probleme damit aber ich bekomme nach einer weile einen Fehler: corrupted double linked list und frage mich ob das vielleicht damit etwas zu tun hat.</p>
<p>Die zeile steht in der cpp von cGO_baseObj.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1977016</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977016</guid><dc:creator><![CDATA[muli]]></dc:creator><pubDate>Mon, 08 Nov 2010 01:00:08 GMT</pubDate></item><item><title><![CDATA[Reply to static initialisierung on Mon, 08 Nov 2010 01:16:28 GMT]]></title><description><![CDATA[<p>Klar kannst du das...</p>
<p>Du wirst in deinem Programm wohl an anderer Stelle undefiniertes Verhalten haben.</p>
<p>Aber eine andere Frage:<br />
Warum erstellst du das Objekt überhaupt mit new?<br />
Also warum hast du einen Zeiger auf einen Vektor?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1977020</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977020</guid><dc:creator><![CDATA[muli - responder]]></dc:creator><pubDate>Mon, 08 Nov 2010 01:16:28 GMT</pubDate></item><item><title><![CDATA[Reply to static initialisierung on Mon, 08 Nov 2010 02:16:38 GMT]]></title><description><![CDATA[<p>weil ich den vector manchmal auswechle durch einen anderen.<br />
Ich dachte das müsste ich machen damit ich ihn nicht verliere.<br />
Aussedem war ich mir nicht sicher wie das mit dem static und dem Speicherreservieren ist. Da wird ja irgendwie bei programmstart der Speicher reserviert und da ist die größe des Vectors ja noch 0.<br />
Wenn ich nun einen neuen Integer anhänge wird dann speicher auf dem Heap reserviert?<br />
oder wie läuft sowas dynamisches bei vectoren ab?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1977021</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977021</guid><dc:creator><![CDATA[muli]]></dc:creator><pubDate>Mon, 08 Nov 2010 02:16:38 GMT</pubDate></item><item><title><![CDATA[Reply to static initialisierung on Mon, 08 Nov 2010 08:20:07 GMT]]></title><description><![CDATA[<p>muli schrieb:</p>
<blockquote>
<p>weil ich den vector manchmal auswechle durch einen anderen.<br />
Ich dachte das müsste ich machen damit ich ihn nicht verliere.</p>
</blockquote>
<p>Was wechselst du aus? Den kompletten Vektor?</p>
<p>muli schrieb:</p>
<blockquote>
<p>Aussedem war ich mir nicht sicher wie das mit dem static und dem Speicherreservieren ist. Da wird ja irgendwie bei programmstart der Speicher reserviert und da ist die größe des Vectors ja noch 0.</p>
</blockquote>
<p>korrekt. Du kannst neue Elemente hinzufügen ohne Probleme befürchten zu müssen.<br />
Intern wird dort auf einen mit new (bzw. ich glaube malloc) angelegten Speicherbereich<br />
verwiesen</p>
<p>muli schrieb:</p>
<blockquote>
<p>Wenn ich nun einen neuen Integer anhänge wird dann speicher auf dem Heap reserviert?</p>
</blockquote>
<p>Genau...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1977088</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977088</guid><dc:creator><![CDATA[muli - responder]]></dc:creator><pubDate>Mon, 08 Nov 2010 08:20:07 GMT</pubDate></item><item><title><![CDATA[Reply to static initialisierung on Mon, 08 Nov 2010 10:25:58 GMT]]></title><description><![CDATA[<p>Ja ich wechsel den kompletten vector aus?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1977146</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977146</guid><dc:creator><![CDATA[muli]]></dc:creator><pubDate>Mon, 08 Nov 2010 10:25:58 GMT</pubDate></item><item><title><![CDATA[Reply to static initialisierung on Mon, 08 Nov 2010 10:31:48 GMT]]></title><description><![CDATA[<p>muli schrieb:</p>
<blockquote>
<p>Ja ich wechsel den kompletten vector aus?</p>
</blockquote>
<p>Das müßte auch hübsch mit swap klappen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1977148</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977148</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 08 Nov 2010 10:31:48 GMT</pubDate></item><item><title><![CDATA[Reply to static initialisierung on Mon, 08 Nov 2010 10:32:08 GMT]]></title><description><![CDATA[<p>Wenn du einen vector auswechseln willst, kannst du ihm einfach einen anderen zuweisen. Da braucht man nicht new, zeiger oder sonstwas dafür.</p>
<p>wenn du einen Vector nicht verlieren willst warum nimmst du nicht vector&lt;vector&lt;datentyp&gt; &gt; somit kannst du immer auf alte vectoren zugreifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1977149</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977149</guid><dc:creator><![CDATA[HighLigerBiMBam]]></dc:creator><pubDate>Mon, 08 Nov 2010 10:32:08 GMT</pubDate></item><item><title><![CDATA[Reply to static initialisierung on Mon, 08 Nov 2010 10:52:18 GMT]]></title><description><![CDATA[<p>Schon mal gut zu wissen das ich die einfach austauschen kann... und die jetzt alle in einen Vector zu stecken ist auch eine gute Idee...</p>
<p>Aber ich wuerde gerne zu meinem eigentlichen problem zurueck... Der fehler tritt sporadisch an verschiedenen stellen auf<br />
Ich habe eine Stelle an der er mit sicherheit auftritt: und zwar im Konstruktor einer abgeleiteten Klasse... dort tritt er an einer stelle auf in der ich einen Stringstream fuelle. Da ich im code an dieser stelle keinen Fehler habe denke ich schon vorher irgendwo etwas mit dem loeschen oder erstellen von objekten falsch gemacht zu haben:<br />
So nun meine Fragen:<br />
Ich habe einen Vector mit pointern zu basisKlassneObjeketen.<br />
Wenn ich diese nun mit delete loesche muss ich ja nicht in den korrekten typ casten wenn der Destruktor virtual ist oder?<br />
Wenn nun einer dieser Pointer korrupt ist tritt der Fehler dann nicht sofort auf... da ja gar kein objekt an dieser stelle zu finen ist?</p>
<p>Wie debugge ich so einen Fehler am besten... Also wie finde ich herraus welche double linked List corrupt ist und am besten auch wann das geschieht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1977161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977161</guid><dc:creator><![CDATA[muli]]></dc:creator><pubDate>Mon, 08 Nov 2010 10:52:18 GMT</pubDate></item><item><title><![CDATA[Reply to static initialisierung on Mon, 08 Nov 2010 10:54:16 GMT]]></title><description><![CDATA[<p>muli schrieb:</p>
<blockquote>
<p>Ja ich wechsel den kompletten vector aus?</p>
</blockquote>
<p>Darf ich mal nach dem konkreten Anwendungsfall fragen?<br />
Also generell gibt es zwar Fälle, in denen man sowas braucht, jedoch<br />
nach meiner Meinung nach relativ selten...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1977162</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977162</guid><dc:creator><![CDATA[muli - responder]]></dc:creator><pubDate>Mon, 08 Nov 2010 10:54:16 GMT</pubDate></item><item><title><![CDATA[Reply to static initialisierung on Mon, 08 Nov 2010 11:00:23 GMT]]></title><description><![CDATA[<p>muli schrieb:</p>
<blockquote>
<p>Aber ich wuerde gerne zu meinem eigentlichen problem zurueck... Der fehler tritt sporadisch an verschiedenen stellen auf</p>
</blockquote>
<p>Wie gesagt... Irgendwo undefiniertes Verhalten...<br />
Ohne weiteren Code wird es schwierig</p>
<p>muli schrieb:</p>
<blockquote>
<p>Ich habe einen Vector mit pointern zu basisKlassneObjeketen.<br />
Wenn ich diese nun mit delete loesche muss ich ja nicht in den korrekten typ casten wenn der Destruktor virtual ist oder?</p>
</blockquote>
<p>Korrekt... Wenn der der Destruktor der Basisklasse(!!!) virtuell ist...</p>
<p>muli schrieb:</p>
<blockquote>
<p>Wenn nun einer dieser Pointer korrupt ist tritt der Fehler dann nicht sofort auf... da ja gar kein objekt an dieser stelle zu finen ist?</p>
</blockquote>
<p>Der Fehler tritt in der Regel bei der ersten Dereferenzierung auf...</p>
<p>muli schrieb:</p>
<blockquote>
<p>Wie debugge ich so einen Fehler am besten... Also wie finde ich herraus welche double linked List corrupt ist und am besten auch wann das geschieht.</p>
</blockquote>
<p>Probier es mal mit dem gdb... (falls du den gcc verwendest)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1977165</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977165</guid><dc:creator><![CDATA[muli - responder]]></dc:creator><pubDate>Mon, 08 Nov 2010 11:00:23 GMT</pubDate></item></channel></rss>