<?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[Lists iterator is not dereferenceble]]></title><description><![CDATA[<p>Hallo Leute,<br />
Ich habe ein kleines 2D Spiel programmiert. Es funktioniert auch alles, was die Grafik angeht. Allerdings habe ich ein Problem, was die Verwaltung der Bäume, gegen die man nicht fahren soll angeht. Beende ich mein Spiel kommt eine Fehlermeldung, die mir erklärt, dass die Iteratoren von Listen nicht dereferenzierbar sind.<br />
Hier der Code:</p>
<pre><code class="language-cpp">class CTree
{
private:
	SDL_Surface *m_image;
    SDL_Rect     m_rect ;
	bool         m_move;
public:
	CTree  ();
	~CTree ();

	void show();
	void move();
	void collision(CSki *Ski);
        void check_trees_to_delte();
};

CTree::CTree()
{
	m_image = load_image(&quot;baum.bmp&quot;);
    SDL_SetColorKey(m_image,SDL_SRCCOLORKEY,SDL_MapRGB(screen-&gt;format,255,255,255) );

	m_rect.x = rand() % (SCREEN_WIDTH - m_image-&gt;w) + 1;
	m_rect.y = SCREEN_HEIGHT;
	m_rect.w = m_image-&gt;w;
	m_rect.h = m_image-&gt;h;

	m_move   = true;
}

CTree::~CTree()
{
	SDL_FreeSurface(m_image);
}

void CTree::show()
{
	apply_surface(m_rect.x,m_rect.y,m_image,screen);
}

void CTree::move()
{
	if (m_move)
	{
	  m_rect.y -= SCROLLING_SPEED;
	}
}

void CTree::collision(CSki *Ski)
{
	if (check_collision(this-&gt;m_rect,Ski-&gt;m_rect))
	{
		Ski-&gt;m_collided = true ;
		m_move          = false;
	}
}

void CTree::check_trees_to_delte()
{
if (m_rect.y &lt; 0) {return (true);}
else {return (false) ;}
}

class CTreeList
{
private:
	std::list &lt;CTree*&gt; m_list;
	std::list &lt;CTree*&gt;::iterator i;
public:
	CTreeList();
	~CTreeList();

	void move_trees();
	void collision_trees(CSki *Ski);
	void show_trees();
	void spawn();
	void delete_overkill_trees();
};

CTreeList::CTreeList()
{
	i = m_list.begin();
}

CTreeList::~CTreeList()
{
	m_list.clear();

	delete (*i);
	(*i) = NULL;
}

void CTreeList::spawn()
{
	CTree *Tree = NULL;
	Tree = new CTree;

	m_list.push_back(Tree);
}

void CTreeList::move_trees()
{
	if (!m_list.empty() )
	{
	  for (i=m_list.begin();i!=m_list.end();++i)
	  {
		  (*i)-&gt;move();	
	  }
	}
}

void CTreeList::collision_trees(CSki *Ski)
{
	if (!m_list.empty() )
	{
		for (i=m_list.begin();i!=m_list.end();++i)
		{
			(*i)-&gt;collision(Ski);
		}
	}
}

void CTreeList::show_trees()
{
	if (!m_list.empty())
	{
		for (i=m_list.begin();i!=m_list.end();++i)
		{
			(*i)-&gt;show();
		}
	}
}

void CTreeList::delete_overkill_trees()
{
i = m_list.begin();
if ( (*i)-&gt;trees_to_delte() )
{
m_list.pop_front();
}
}
</code></pre>
<p>Vielen Dank jedem der mir hilft, KONSTRUKTIVE Vorschläge zur funktion CTreeList::delete_overkill_trees macht oder den Grund für die Fehlermeldung findet.</p>
<p>Danke jedem, der Zeit darauf verwendet, anderen Leuten zu helfen.<br />
<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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/281773/lists-iterator-is-not-dereferenceble</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 12:21:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/281773.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 07 Feb 2011 15:29:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Lists iterator is not dereferenceble on Mon, 07 Feb 2011 15:29:32 GMT]]></title><description><![CDATA[<p>Hallo Leute,<br />
Ich habe ein kleines 2D Spiel programmiert. Es funktioniert auch alles, was die Grafik angeht. Allerdings habe ich ein Problem, was die Verwaltung der Bäume, gegen die man nicht fahren soll angeht. Beende ich mein Spiel kommt eine Fehlermeldung, die mir erklärt, dass die Iteratoren von Listen nicht dereferenzierbar sind.<br />
Hier der Code:</p>
<pre><code class="language-cpp">class CTree
{
private:
	SDL_Surface *m_image;
    SDL_Rect     m_rect ;
	bool         m_move;
public:
	CTree  ();
	~CTree ();

	void show();
	void move();
	void collision(CSki *Ski);
        void check_trees_to_delte();
};

CTree::CTree()
{
	m_image = load_image(&quot;baum.bmp&quot;);
    SDL_SetColorKey(m_image,SDL_SRCCOLORKEY,SDL_MapRGB(screen-&gt;format,255,255,255) );

	m_rect.x = rand() % (SCREEN_WIDTH - m_image-&gt;w) + 1;
	m_rect.y = SCREEN_HEIGHT;
	m_rect.w = m_image-&gt;w;
	m_rect.h = m_image-&gt;h;

	m_move   = true;
}

CTree::~CTree()
{
	SDL_FreeSurface(m_image);
}

void CTree::show()
{
	apply_surface(m_rect.x,m_rect.y,m_image,screen);
}

void CTree::move()
{
	if (m_move)
	{
	  m_rect.y -= SCROLLING_SPEED;
	}
}

void CTree::collision(CSki *Ski)
{
	if (check_collision(this-&gt;m_rect,Ski-&gt;m_rect))
	{
		Ski-&gt;m_collided = true ;
		m_move          = false;
	}
}

void CTree::check_trees_to_delte()
{
if (m_rect.y &lt; 0) {return (true);}
else {return (false) ;}
}

class CTreeList
{
private:
	std::list &lt;CTree*&gt; m_list;
	std::list &lt;CTree*&gt;::iterator i;
public:
	CTreeList();
	~CTreeList();

	void move_trees();
	void collision_trees(CSki *Ski);
	void show_trees();
	void spawn();
	void delete_overkill_trees();
};

CTreeList::CTreeList()
{
	i = m_list.begin();
}

CTreeList::~CTreeList()
{
	m_list.clear();

	delete (*i);
	(*i) = NULL;
}

void CTreeList::spawn()
{
	CTree *Tree = NULL;
	Tree = new CTree;

	m_list.push_back(Tree);
}

void CTreeList::move_trees()
{
	if (!m_list.empty() )
	{
	  for (i=m_list.begin();i!=m_list.end();++i)
	  {
		  (*i)-&gt;move();	
	  }
	}
}

void CTreeList::collision_trees(CSki *Ski)
{
	if (!m_list.empty() )
	{
		for (i=m_list.begin();i!=m_list.end();++i)
		{
			(*i)-&gt;collision(Ski);
		}
	}
}

void CTreeList::show_trees()
{
	if (!m_list.empty())
	{
		for (i=m_list.begin();i!=m_list.end();++i)
		{
			(*i)-&gt;show();
		}
	}
}

void CTreeList::delete_overkill_trees()
{
i = m_list.begin();
if ( (*i)-&gt;trees_to_delte() )
{
m_list.pop_front();
}
}
</code></pre>
<p>Vielen Dank jedem der mir hilft, KONSTRUKTIVE Vorschläge zur funktion CTreeList::delete_overkill_trees macht oder den Grund für die Fehlermeldung findet.</p>
<p>Danke jedem, der Zeit darauf verwendet, anderen Leuten zu helfen.<br />
<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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2017850</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2017850</guid><dc:creator><![CDATA[FredagorBolgart]]></dc:creator><pubDate>Mon, 07 Feb 2011 15:29:32 GMT</pubDate></item><item><title><![CDATA[Reply to Lists iterator is not dereferenceble on Mon, 07 Feb 2011 15:47:10 GMT]]></title><description><![CDATA[<p>Entferne mal das C-Präfix, du MFC-Faschist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2017856</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2017856</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 07 Feb 2011 15:47:10 GMT</pubDate></item><item><title><![CDATA[Reply to Lists iterator is not dereferenceble on Mon, 07 Feb 2011 17:06:16 GMT]]></title><description><![CDATA[<p>314159265358979</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2017858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2017858</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 07 Feb 2011 17:06:16 GMT</pubDate></item><item><title><![CDATA[Reply to Lists iterator is not dereferenceble on Mon, 07 Feb 2011 15:52:16 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Entferne mal das C-Präfix, du MFC-Faschist.</p>
</blockquote>
<p>Außerdem ist dein Destruktor totaler Mist. Du löschst die Elemente und dereferenzierst dann einen Iterator darauf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2017859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2017859</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 07 Feb 2011 15:52:16 GMT</pubDate></item><item><title><![CDATA[Reply to Lists iterator is not dereferenceble on Mon, 07 Feb 2011 16:19:34 GMT]]></title><description><![CDATA[<p>Hab mir mal die Mühe gemacht deine zweite Klasse stilmäßig aufgleich zu bringen, warum du da Zeiger verwendest, ist mir nicht klar, bei deiner momentanen Funktionalität brauchst du die nicht. Benutze RAII.</p>
<p>Link: <a href="http://codepad.org/mowXEBsZ" rel="nofollow">http://codepad.org/mowXEBsZ</a></p>
<p>Möglicherweise kann man da mit std::for_each was schöneres basteln, anstatt der vielen for-Schleifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2017865</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2017865</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 07 Feb 2011 16:19:34 GMT</pubDate></item><item><title><![CDATA[Reply to Lists iterator is not dereferenceble on Mon, 07 Feb 2011 17:06:01 GMT]]></title><description><![CDATA[<p>314159265358979</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2017873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2017873</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 07 Feb 2011 17:06:01 GMT</pubDate></item><item><title><![CDATA[Reply to Lists iterator is not dereferenceble on Mon, 07 Feb 2011 16:28:59 GMT]]></title><description><![CDATA[<p>Habe ich übersehen, tut sie bei deiner aber auch. Was tut diese Funktion überhaupt genau?</p>
<p>Schöner:</p>
<pre><code class="language-cpp">if(!trees.empty() &amp;&amp; trees.begin()-&gt;trees_to_delte())
        trees.pop_front();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2017876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2017876</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 07 Feb 2011 16:28:59 GMT</pubDate></item><item><title><![CDATA[Reply to Lists iterator is not dereferenceble on Mon, 07 Feb 2011 17:05:54 GMT]]></title><description><![CDATA[<p>314159265358979</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2017886</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2017886</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 07 Feb 2011 17:05:54 GMT</pubDate></item><item><title><![CDATA[Reply to Lists iterator is not dereferenceble on Mon, 07 Feb 2011 16:45:43 GMT]]></title><description><![CDATA[<p>Ich spreche von deiner ersten Version. Mit der STL kennst du dich ja im übrigen nicht besonders aus, wenn du jedes mal überprüfst, ob die Liste leer ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2017887</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2017887</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 07 Feb 2011 16:45:43 GMT</pubDate></item><item><title><![CDATA[Reply to Lists iterator is not dereferenceble on Mon, 07 Feb 2011 17:12:43 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/u5577" rel="nofollow">rapso</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/f7" rel="nofollow">Spiele-/Grafikprogrammierung</a> in das Forum <a href="http://www.c-plusplus.net/forum/f15" rel="nofollow">C++ (auch C++0x)</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2017900</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2017900</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Mon, 07 Feb 2011 17:12:43 GMT</pubDate></item><item><title><![CDATA[Reply to Lists iterator is not dereferenceble on Mon, 07 Feb 2011 19:08:19 GMT]]></title><description><![CDATA[<p>Leute vielen Dank, für die Mühe die ihr euch gemacht habt. Vielen Dank für eure Vorschläge. Es ist mein erstes Spiel und ja ihr habt recht, mit dem STL kenne Ich mich nicht so gut aus. Kennt ihr ein Tutorial, wodurch ich meine STL Kenntnisse ausbessern kann. Ist mein erstes Spiel und Ich denke das sieht man an dem stillosen, teils wenig effizienten Code.</p>
<p>Trotzdem vielen Dank!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2017941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2017941</guid><dc:creator><![CDATA[Fredagor Bolgart]]></dc:creator><pubDate>Mon, 07 Feb 2011 19:08:19 GMT</pubDate></item><item><title><![CDATA[Reply to Lists iterator is not dereferenceble on Mon, 07 Feb 2011 19:54:58 GMT]]></title><description><![CDATA[<p><a href="http://magazin.c-plusplus.net/artikel/Aufbau%20der%20STL%20-%20Teil%201%3A%20Container" rel="nofollow">Hier</a> eine Einführung. In deinem C++-Buch sollte die STL auch behandelt werden, sofern es irgendwas taugt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2017956</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2017956</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 07 Feb 2011 19:54:58 GMT</pubDate></item><item><title><![CDATA[Reply to Lists iterator is not dereferenceble on Tue, 08 Feb 2011 13:06:51 GMT]]></title><description><![CDATA[<p>Ja das ist in dem Buch angeschnitten worden. Danke für den Link.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2018227</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2018227</guid><dc:creator><![CDATA[Fr0d0]]></dc:creator><pubDate>Tue, 08 Feb 2011 13:06:51 GMT</pubDate></item><item><title><![CDATA[Reply to Lists iterator is not dereferenceble on Tue, 08 Feb 2011 13:31:13 GMT]]></title><description><![CDATA[<p>Leute Ich bekomme immernoch eine Fehlermeldung, dass iteratoren von Listen nicht dereferenzierbar sind, auch wenn Ich die überarbeitete Klasse übernehme. Es wird auf die Datei list, die Ich einbinde in Zeile 207 hingewiesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2018237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2018237</guid><dc:creator><![CDATA[Fr0d0]]></dc:creator><pubDate>Tue, 08 Feb 2011 13:31:13 GMT</pubDate></item><item><title><![CDATA[Reply to Lists iterator is not dereferenceble on Tue, 08 Feb 2011 13:33:52 GMT]]></title><description><![CDATA[<p>Poste den Code um die Stelle, an welcher der Fehler auftritt und markiere die Zeile mit dem Fehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2018241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2018241</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 08 Feb 2011 13:33:52 GMT</pubDate></item><item><title><![CDATA[Reply to Lists iterator is not dereferenceble on Tue, 08 Feb 2011 13:43:06 GMT]]></title><description><![CDATA[<p>Hallo, das Problem liegt darin, dass der Debugger immer an anderen Stelln ein Problem hat- manchmal auch gar nicht.</p>
<pre><code class="language-cpp">class CTree
{
private:
	SDL_Surface *m_image;
    SDL_Rect     m_rect ;
	bool         m_move;
public:
	CTree  ();
	~CTree ();

	void show();
	void move();
	void collision(CSki *Ski);
	bool check_overkill_trees();
};

CTree::CTree()
{
	m_image = load_image(&quot;baum.bmp&quot;);
    SDL_SetColorKey(m_image,SDL_SRCCOLORKEY,SDL_MapRGB(screen-&gt;format,255,255,255) );

	m_rect.x = rand() % (SCREEN_WIDTH - m_image-&gt;w) + 1;
	m_rect.y = SCREEN_HEIGHT;
	m_rect.w = m_image-&gt;w;
	m_rect.h = m_image-&gt;h;

	m_move   = true;
}

CTree::~CTree()
{
	SDL_FreeSurface(m_image);
}

void CTree::show()
{
	apply_surface(m_rect.x,m_rect.y,m_image,screen);
}

void CTree::move()
{
	if (m_move)
	{
	  m_rect.y -= SCROLLING_SPEED;
	}
}

void CTree::collision(CSki *Ski)
{
	if (check_collision(this-&gt;m_rect,Ski-&gt;m_rect))
	{
		Ski-&gt;m_collided = true ;
		m_move          = false;
	}
}

bool CTree::check_overkill_trees()
{
	if ( (m_rect.y&lt;0) || (m_rect.x&gt;SCREEN_WIDTH) )
	{
		return (true);
	}

	return (false);
}

class CTreeList
{
    std::list &lt;CTree&gt; trees;

public:

    void move_trees();
    void collision_trees(CSki *Ski);
    void show_trees();
    void spawn();
    void delete_overkill_trees();
};

void CTreeList::spawn()
{
    trees.push_back(CTree());
}

void CTreeList::move_trees()
{
    for(std::list&lt;CTree&gt;::iterator iter = trees.begin(); iter != trees.end(); ++iter)
        iter-&gt;move();
}

void CTreeList::collision_trees(CSki *ski)
{
    for(std::list&lt;CTree&gt;::iterator iter = trees.begin(); iter != trees.end(); ++iter)
        iter-&gt;collision(ski);
}

void CTreeList::show_trees()
{
    for(std::list&lt;CTree&gt;::iterator iter = trees.begin(); iter != trees.end(); ++iter)
        iter-&gt;show();
}

void CTreeList::delete_overkill_trees()
{
    if(trees.begin()-&gt;check_overkill_trees())
        trees.pop_front();
}
</code></pre>
<p>Das ist der Code. Klasse 2 übernommen. Keine Ahnung, wo der Fehler liegt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2018250</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2018250</guid><dc:creator><![CDATA[Fr0d0]]></dc:creator><pubDate>Tue, 08 Feb 2011 13:43:06 GMT</pubDate></item><item><title><![CDATA[Reply to Lists iterator is not dereferenceble on Tue, 08 Feb 2011 13:58:02 GMT]]></title><description><![CDATA[<p>Dann reduzier das Problem bitte auf ein Minimalbeispiel, das den Fehler immer noch repräsentiert. Und schau, dass die [cpp]-Tags funktionieren, dafür gibts den Vorschau-Button.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2018259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2018259</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 08 Feb 2011 13:58:02 GMT</pubDate></item><item><title><![CDATA[Reply to Lists iterator is not dereferenceble on Tue, 08 Feb 2011 14:31:09 GMT]]></title><description><![CDATA[<p>Soweit ich das erkenne, scheint CTree keine geeignete Kopiersemantik zu haben, das funktioniert dann nicht mit std::list &lt;CTree&gt;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2018272</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2018272</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 08 Feb 2011 14:31:09 GMT</pubDate></item></channel></rss>