<?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[Verwaltung von Sprites in einem Spiel =&amp;gt; Crash]]></title><description><![CDATA[<p>Hallo,<br />
um es möglich zu machen mehrere Schüsse darzustellen benutze ich eine std::list in der ich diese verwalte. Sobald der Bildschirmbereich verlassen wurde, soll der Schuss aus der Liste gelöscht werden damit ich nicht irgendwann 100000000000... Einträge habe. Leider stürzt mein Programm dabei immer ab <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Es greift wohl auf einen falschen Speicherbereich zu.</p>
<p>Hier mein Code:</p>
<pre><code class="language-cpp">for (std::list&lt;class Projectile *&gt;::iterator it = projectiles.begin(); it != projectiles.end(); ++it) {
	(*it)-&gt;think(elapsedTime);
	if ((*it)-&gt;erase()) {
		delete (*it);
		it = projectiles.erase(it);
	}
	Draw((*it)-&gt;getSprite());
}
</code></pre>
<p>Wie kann ich das Problem beheben? Bitte um eure Hilfe. So schwer kann das doch nicht sein... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Vielen Dank im Voraus,<br />
ProblemeHabeIch</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/208199/verwaltung-von-sprites-in-einem-spiel-gt-crash</link><generator>RSS for Node</generator><lastBuildDate>Sun, 11 Oct 2026 16:49:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/208199.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 16 Mar 2008 00:40:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verwaltung von Sprites in einem Spiel =&amp;gt; Crash on Sun, 16 Mar 2008 00:40:16 GMT]]></title><description><![CDATA[<p>Hallo,<br />
um es möglich zu machen mehrere Schüsse darzustellen benutze ich eine std::list in der ich diese verwalte. Sobald der Bildschirmbereich verlassen wurde, soll der Schuss aus der Liste gelöscht werden damit ich nicht irgendwann 100000000000... Einträge habe. Leider stürzt mein Programm dabei immer ab <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Es greift wohl auf einen falschen Speicherbereich zu.</p>
<p>Hier mein Code:</p>
<pre><code class="language-cpp">for (std::list&lt;class Projectile *&gt;::iterator it = projectiles.begin(); it != projectiles.end(); ++it) {
	(*it)-&gt;think(elapsedTime);
	if ((*it)-&gt;erase()) {
		delete (*it);
		it = projectiles.erase(it);
	}
	Draw((*it)-&gt;getSprite());
}
</code></pre>
<p>Wie kann ich das Problem beheben? Bitte um eure Hilfe. So schwer kann das doch nicht sein... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Vielen Dank im Voraus,<br />
ProblemeHabeIch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1475072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1475072</guid><dc:creator><![CDATA[ProblemeHabeIch]]></dc:creator><pubDate>Sun, 16 Mar 2008 00:40:16 GMT</pubDate></item><item><title><![CDATA[Reply to Verwaltung von Sprites in einem Spiel =&amp;gt; Crash on Sun, 16 Mar 2008 01:25:00 GMT]]></title><description><![CDATA[<p>Wieso eine list mit Zeigern?</p>
<p>Das macht das alles nur unübersichtlicher.</p>
<p>Ansonsten sieht alles korrekt aus, eventuell solltest du mal schauen ob du NULL-Pointer, bzw. ungültige Pointer in der Liste hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1475075</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1475075</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Sun, 16 Mar 2008 01:25:00 GMT</pubDate></item><item><title><![CDATA[Reply to Verwaltung von Sprites in einem Spiel =&amp;gt; Crash on Sun, 16 Mar 2008 10:52:07 GMT]]></title><description><![CDATA[<p>Du inkrementierst deinen Iterator zweimal, wenn du am Ende der Liste löscht.</p>
<p>Vielleicht geht das so:</p>
<pre><code class="language-cpp">std::list&lt;class Projectile *&gt;::iterator it = projectiles.begin();
while (it != projectiles.end()) {
    (*it)-&gt;think(elapsedTime);
    if ((*it)-&gt;erase()) {
        delete (*it);
        it = projectiles.erase(it);
    } else {
      Draw((*it)-&gt;getSprite());
      ++it;
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1475143</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1475143</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 16 Mar 2008 10:52:07 GMT</pubDate></item><item><title><![CDATA[Reply to Verwaltung von Sprites in einem Spiel =&amp;gt; Crash on Sun, 16 Mar 2008 11:04:41 GMT]]></title><description><![CDATA[<p>ProgChild schrieb:</p>
<blockquote>
<p>Du inkrementierst deinen Iterator zweimal, wenn du am Ende der Liste löscht.</p>
<p>Vielleicht geht das so:</p>
<pre><code class="language-cpp">std::list&lt;class Projectile *&gt;::iterator it = projectiles.begin();
while (it != projectiles.end()) {
    (*it)-&gt;think(elapsedTime);
    if ((*it)-&gt;erase()) {
        delete (*it);
        it = projectiles.erase(it);
    } else {
      Draw((*it)-&gt;getSprite());
      ++it;
    }
}
</code></pre>
</blockquote>
<p>Wow. Danke <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="🙂"
    /> So klappts bestens <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="🙂"
    /> Lässt sich der Code vielleicht noch etwas verkürzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1475150</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1475150</guid><dc:creator><![CDATA[ProblemeHabeIch]]></dc:creator><pubDate>Sun, 16 Mar 2008 11:04:41 GMT</pubDate></item><item><title><![CDATA[Reply to Verwaltung von Sprites in einem Spiel =&amp;gt; Crash on Sun, 16 Mar 2008 11:09:07 GMT]]></title><description><![CDATA[<p>ProblemeHabeIch schrieb:</p>
<blockquote>
<p>Wow. Danke <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="🙂"
    /> So klappts bestens <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="🙂"
    /> Lässt sich der Code vielleicht noch etwas verkürzen?</p>
</blockquote>
<p>Mir ist kein wesentlicher Weg dafür bekannt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1475154</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1475154</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 16 Mar 2008 11:09:07 GMT</pubDate></item></channel></rss>