<?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[Löschen einer verketteten Liste führt zu Speicherzugriffsfehler]]></title><description><![CDATA[<p>Hallo,<br />
ich habe eine Liste, welche ich in einer Funktion mit Elementen &quot;fülle&quot;.<br />
Die Liste habe ich global definiert. Jedesmal, wenn ich die Funktion neu aufrufe,<br />
soll die Liste gelöscht und neu &quot;gefüllt&quot; werden um nicht zu viel Speicherplatz zu belegen.</p>
<p><strong>Folgend mein Code, welcher funktioniert,</strong> aber nach mehrmaligen Aufrufen der Funktion CreateQSDTriangles() immer mehr speicher belegt.</p>
<p>Ich definiere meine Liste global:</p>
<pre><code class="language-cpp">struct TriangleList
{
	Triangle 		t;
	TriangleList	*next;	
};

TriangleList 	*triangles = new TriangleList;
</code></pre>
<p>Meine Funktion, welche die Liste füllt:</p>
<pre><code class="language-cpp">void CreateQSDTriangles(void)
{

	TriangleList *triangles_begin;
	TriangleList *triangles_node;
	TriangleList *triangles_delete;

	triangles_begin = triangles;
	while (quads)
	{
		q = quads-&gt;q;		

		triangles_node = new TriangleList;
		triangles_node-&gt;t = quad.t1;
		triangles_node-&gt;next = NULL;
		triangles-&gt;next = triangles_node;
		triangles = triangles_node;
	}
	triangles = triangles_begin;
}
</code></pre>
<p><strong>Folgend die geänderte Funktion,</strong> mit welcher das Programm leider wegen Speicherzugriffsfehler abstürtzt.</p>
<pre><code class="language-cpp">void CreateQSDTriangles(void)
{

	TriangleList *triangles_begin;
	TriangleList *triangles_node;
	TriangleList *triangles_delete;

	while (triangles)
	{
		triangles_delete = new TriangleList;
		triangles_delete = triangles;
		triangles = triangles-&gt;next;
		delete triangles_delete;
		triangles_delete = NULL;

	}
	triangles = new TriangleList;

       triangles_begin = triangles;
	while (quads)
	{
		q = quads-&gt;q;		

		triangles_node = new TriangleList;
		triangles_node-&gt;t = quad.t1;
		triangles_node-&gt;next = NULL;
		triangles-&gt;next = triangles_node;
		triangles = triangles_node;
	}
	triangles = triangles_begin;
}
</code></pre>
<p>Vielleicht kann mir jemand sagen wo der Fehler steckt. Ich habe den Code hier extrem gekürzt reinkopiert. Mein Programm funktioniert wie gesagt einwandfrei, nur wenn ich den Code zum Löschen der Dreiecksliste einbaue, stürtzt das Programm ab.</p>
<p>Viele Grüße<br />
Jens</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/204054/löschen-einer-verketteten-liste-führt-zu-speicherzugriffsfehler</link><generator>RSS for Node</generator><lastBuildDate>Thu, 08 Oct 2026 08:44:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/204054.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 29 Jan 2008 17:33:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Löschen einer verketteten Liste führt zu Speicherzugriffsfehler on Tue, 29 Jan 2008 17:33:59 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe eine Liste, welche ich in einer Funktion mit Elementen &quot;fülle&quot;.<br />
Die Liste habe ich global definiert. Jedesmal, wenn ich die Funktion neu aufrufe,<br />
soll die Liste gelöscht und neu &quot;gefüllt&quot; werden um nicht zu viel Speicherplatz zu belegen.</p>
<p><strong>Folgend mein Code, welcher funktioniert,</strong> aber nach mehrmaligen Aufrufen der Funktion CreateQSDTriangles() immer mehr speicher belegt.</p>
<p>Ich definiere meine Liste global:</p>
<pre><code class="language-cpp">struct TriangleList
{
	Triangle 		t;
	TriangleList	*next;	
};

TriangleList 	*triangles = new TriangleList;
</code></pre>
<p>Meine Funktion, welche die Liste füllt:</p>
<pre><code class="language-cpp">void CreateQSDTriangles(void)
{

	TriangleList *triangles_begin;
	TriangleList *triangles_node;
	TriangleList *triangles_delete;

	triangles_begin = triangles;
	while (quads)
	{
		q = quads-&gt;q;		

		triangles_node = new TriangleList;
		triangles_node-&gt;t = quad.t1;
		triangles_node-&gt;next = NULL;
		triangles-&gt;next = triangles_node;
		triangles = triangles_node;
	}
	triangles = triangles_begin;
}
</code></pre>
<p><strong>Folgend die geänderte Funktion,</strong> mit welcher das Programm leider wegen Speicherzugriffsfehler abstürtzt.</p>
<pre><code class="language-cpp">void CreateQSDTriangles(void)
{

	TriangleList *triangles_begin;
	TriangleList *triangles_node;
	TriangleList *triangles_delete;

	while (triangles)
	{
		triangles_delete = new TriangleList;
		triangles_delete = triangles;
		triangles = triangles-&gt;next;
		delete triangles_delete;
		triangles_delete = NULL;

	}
	triangles = new TriangleList;

       triangles_begin = triangles;
	while (quads)
	{
		q = quads-&gt;q;		

		triangles_node = new TriangleList;
		triangles_node-&gt;t = quad.t1;
		triangles_node-&gt;next = NULL;
		triangles-&gt;next = triangles_node;
		triangles = triangles_node;
	}
	triangles = triangles_begin;
}
</code></pre>
<p>Vielleicht kann mir jemand sagen wo der Fehler steckt. Ich habe den Code hier extrem gekürzt reinkopiert. Mein Programm funktioniert wie gesagt einwandfrei, nur wenn ich den Code zum Löschen der Dreiecksliste einbaue, stürtzt das Programm ab.</p>
<p>Viele Grüße<br />
Jens</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445828</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445828</guid><dc:creator><![CDATA[jensr]]></dc:creator><pubDate>Tue, 29 Jan 2008 17:33:59 GMT</pubDate></item><item><title><![CDATA[Reply to Löschen einer verketteten Liste führt zu Speicherzugriffsfehler on Tue, 29 Jan 2008 17:40:59 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Lass einfach mal das hier weg (Zeile 10)</p>
<pre><code class="language-cpp">triangles_delete = new TriangleList;
</code></pre>
<p>Du allozierst hier Speicher, überschreibst aber danach die Variable wieder. Dieser Speicher wird also nie freigegeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445833</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445833</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 29 Jan 2008 17:40:59 GMT</pubDate></item><item><title><![CDATA[Reply to Löschen einer verketteten Liste führt zu Speicherzugriffsfehler on Tue, 29 Jan 2008 19:21:47 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>die Zeile habe ich testweise eingefügt.<br />
Ohne diese bleibt das Problem leider bestehen..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445924</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445924</guid><dc:creator><![CDATA[jensr]]></dc:creator><pubDate>Tue, 29 Jan 2008 19:21:47 GMT</pubDate></item><item><title><![CDATA[Reply to Löschen einer verketteten Liste führt zu Speicherzugriffsfehler on Tue, 29 Jan 2008 19:37:19 GMT]]></title><description><![CDATA[<p>Ich finde, du machst es dir ein wenig kompliziert! Füg doch wenigstens Konstruktor und Destruktor in die Liste ein, die nehmen dir immerhin ein wenig was ab:</p>
<pre><code class="language-cpp">struct TriangleList
{
    Triangle         t;
    TriangleList    *next;

    TriangleList()
    {
        next = NULL;
    }

    ~TriangleList()
    {
        if ( next )
            delete next;
    }
};

// ...

// Liste löschen
delete triangles;
</code></pre>
<p>Zu deinem Fehler: Ich wüsste nicht, wo hier die while-Schleife aushören sollte (Singlethreaded jedenfalls)</p>
<pre><code class="language-cpp">while (quads)
{
    q = quads-&gt;q;
    // ...
}
</code></pre>
<p>Vielleicht meinst du <code>quads = quads-&gt;q;</code> ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445933</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445933</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Tue, 29 Jan 2008 19:37:19 GMT</pubDate></item><item><title><![CDATA[Reply to Löschen einer verketteten Liste führt zu Speicherzugriffsfehler on Tue, 29 Jan 2008 22:18:59 GMT]]></title><description><![CDATA[<p>Ich poste einfach mal die ganze Funktion. Wahrscheinlich habe ich das alles sehr umständlich gemacht, aber habe bisher wenig mit verketten Listen gearbeitet.</p>
<p>Der auskommentierte Teil macht Probleme.</p>
<pre><code class="language-cpp">/** 
 * Create triangles by quad subdivision
 * */
void CreateQSDTriangles(void)
{
	int precision = 1;
	triangle_count = 0;
	TriangleList *triangles_begin;
	TriangleList *triangles_node;
	TriangleList *triangles_delete;
	QuadList *quads = new QuadList;
	QuadList *quads_delete;
	QuadList *temp_quads; 
	QuadList *temp_quads_node;
	QuadList *temp_quads_begin;
	QuadTree quad;
	Quad q, temp_q;
	Vertex middle;

	/*
	while (triangles)
	{
		triangles_delete = new TriangleList;
		triangles_delete = triangles;
		triangles = triangles-&gt;next;
		printf(&quot;%i\n&quot;, triangles_delete-&gt;t.a.x);
		delete triangles_delete;
		triangles_delete = NULL;

	}
	triangles = new TriangleList;*/

	//init quad list with first quad
	q.a = CreateVertex(terrain_corner.x, terrain_corner.z);
	q.b = CreateVertex(terrain_corner.x + terrain_size, terrain_corner.z);
	q.c = CreateVertex(terrain_corner.x + terrain_size, terrain_corner.z + terrain_size);
	q.d = CreateVertex(terrain_corner.x, terrain_corner.z + terrain_size);

	quads-&gt;q = q;
	quads-&gt;next = NULL;

	//refine terrain up to max precision
	while (precision &lt;= max_precision)
	{
		temp_quads = new QuadList;
		temp_quads_begin = temp_quads;
		while (quads)
		{
			q = quads-&gt;q;

			//quad should be refined
			//triangle should be refined
			if (ApproxError(q) || !mesh_simplification)
			{
				//refine quad into 4 quads and append it to temp_quad list
				middle.x = q.a.x + (q.b.x - q.a.x) / 2;
				middle.z = q.a.z + (q.d.z - q.a.z) / 2;

				temp_q.a = CreateVertex(q.a.x, q.a.z);
				temp_q.b = CreateVertex(middle.x, q.a.z);
				temp_q.c = CreateVertex(middle.x, middle.z);
				temp_q.d = CreateVertex(q.d.x, middle.z);

				temp_quads_node = new QuadList;
				temp_quads_node-&gt;q = temp_q;
				temp_quads_node-&gt;next = NULL;
				temp_quads-&gt;next = temp_quads_node;
				temp_quads = temp_quads_node;

				temp_q.a = CreateVertex(middle.x, q.a.z);
				temp_q.b = CreateVertex(q.b.x, q.b.z);
				temp_q.c = CreateVertex(q.b.x, middle.z);
				temp_q.d = CreateVertex(middle.x, middle.z);

				temp_quads_node = new QuadList;
				temp_quads_node-&gt;q = temp_q;
				temp_quads_node-&gt;next = NULL;
				temp_quads-&gt;next = temp_quads_node;
				temp_quads = temp_quads_node;

				temp_q.a = CreateVertex(middle.x, middle.z);
				temp_q.b = CreateVertex(q.b.x, middle.z);
				temp_q.c = CreateVertex(q.c.x, q.c.z);
				temp_q.d = CreateVertex(middle.x, q.c.z);

				temp_quads_node = new QuadList;
				temp_quads_node-&gt;q = temp_q;
				temp_quads_node-&gt;next = NULL;
				temp_quads-&gt;next = temp_quads_node;
				temp_quads = temp_quads_node;

				temp_q.a = CreateVertex(q.a.x, middle.z);
				temp_q.b = CreateVertex(middle.x, middle.z);
				temp_q.c = CreateVertex(middle.x, q.c.z);
				temp_q.d = CreateVertex(q.d.x, q.d.z);

				temp_quads_node = new QuadList;
				temp_quads_node-&gt;q = temp_q;
				temp_quads_node-&gt;next = NULL;
				temp_quads-&gt;next = temp_quads_node;
				temp_quads = temp_quads_node;

			}
			else
			{
				temp_quads_node = new QuadList;
				temp_quads_node-&gt;q = q;
				temp_quads_node-&gt;next = NULL;
				temp_quads-&gt;next = temp_quads_node;
				temp_quads = temp_quads_node;
			}
			quads = quads-&gt;next;
		}
		temp_quads = temp_quads_begin;
		quads = temp_quads-&gt;next;

		precision++;
	}

	//create triangles out of quads and delete quads
	triangles_begin = triangles;
	while (quads)
	{
		q = quads-&gt;q;

		middle.x = q.a.x + (q.b.x - q.a.x) / 2;
		middle.z = q.a.z + (q.d.z - q.a.z) / 2;

		quad.t1.a = CreateVertex(q.a.x, q.a.z);
		quad.t1.b = CreateVertex(q.b.x, q.b.z);
		quad.t1.c = CreateVertex(middle.x, middle.z);

		quad.t2.a = CreateVertex(middle.x, middle.z);
		quad.t2.b = CreateVertex(q.b.x, q.b.z);
		quad.t2.c = CreateVertex(q.c.x, q.c.z);

		quad.t3.a = CreateVertex(q.d.x, q.d.z);
		quad.t3.b = CreateVertex(middle.x, middle.z);
		quad.t3.c = CreateVertex(q.c.x, q.c.z);

		quad.t4.a = CreateVertex(q.a.x, q.a.z);
		quad.t4.b = CreateVertex(middle.x, middle.z);
		quad.t4.c = CreateVertex(q.d.x, q.d.z);

		triangles_node = new TriangleList;
		triangles_node-&gt;t = quad.t1;
		triangles_node-&gt;next = NULL;
		triangles-&gt;next = triangles_node;
		triangles = triangles_node;

		triangles_node = new TriangleList;
		triangles_node-&gt;t = quad.t2;
		triangles_node-&gt;next = NULL;
		triangles-&gt;next = triangles_node;
		triangles = triangles_node;

		triangles_node = new TriangleList;
		triangles_node-&gt;t = quad.t3;
		triangles_node-&gt;next = NULL;
		triangles-&gt;next = triangles_node;
		triangles = triangles_node;

		triangles_node = new TriangleList;
		triangles_node-&gt;t = quad.t4;
		triangles_node-&gt;next = NULL;
		triangles-&gt;next = triangles_node;
		triangles = triangles_node;

		quads_delete = quads;
		quads = quads-&gt;next;
		delete quads_delete;
		quads_delete = NULL;

		triangle_count += 4;
	}
	triangles = triangles_begin;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1446023</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1446023</guid><dc:creator><![CDATA[jensr]]></dc:creator><pubDate>Tue, 29 Jan 2008 22:18:59 GMT</pubDate></item><item><title><![CDATA[Reply to Löschen einer verketteten Liste führt zu Speicherzugriffsfehler on Tue, 29 Jan 2008 22:22:35 GMT]]></title><description><![CDATA[<p>Bist du gezwungen mit einer eigenen Liste zu arbeiten oder kannst du auch was aus dem Standard (hier z.Bsp. list) nehmen?<br />
Wenn du unbedingt eine eigene Liste nehmen willst würde ich sie an deiner Stelle aber trotzdem in eine Klasse packen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1446026</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1446026</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 29 Jan 2008 22:22:35 GMT</pubDate></item><item><title><![CDATA[Reply to Löschen einer verketteten Liste führt zu Speicherzugriffsfehler on Tue, 29 Jan 2008 22:30:08 GMT]]></title><description><![CDATA[<p>Für einen echten c++ programmierer muss das eine Horrorschow sein. <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>Du muss für jede neue TriangleList das Element next auf NULL setzen.</p>
<pre><code class="language-cpp">triangles = new TriangleList;
triangles-&gt;next = NULL;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1446028</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1446028</guid><dc:creator><![CDATA[Ramsis]]></dc:creator><pubDate>Tue, 29 Jan 2008 22:30:08 GMT</pubDate></item><item><title><![CDATA[Reply to Löschen einer verketteten Liste führt zu Speicherzugriffsfehler on Wed, 30 Jan 2008 17:32:38 GMT]]></title><description><![CDATA[<p>Hallo, habe es jetzt hinbekommen mit dem Löschen der Liste, aber seltsamerweise stürzt mir das Programm jetzt bei ca. 200.000 Dreiecken ab. Lösche ich die Dreiecksliste nicht, funktioniert es.</p>
<pre><code class="language-cpp">TriangleList *Triangles;

struct TriangleList
{
	Triangle 		t;
	TriangleList	*next;

	TriangleList()
    {
        next = NULL;
    } 

	~TriangleList()
    {
        if (next)
        	delete next;
    }
};

/** 
 * Create triangles by quad subdivision
 * */
void TerrainViewer::CreateQSDTriangles(void)
{
	int precision = 1;
	triangle_count = 0;
	TriangleList *triangles_begin;
	TriangleList *triangles_node;
	QuadList *quads = new QuadList;
	QuadList *temp_quads; 
	QuadList *temp_quads_node;
	QuadList *temp_quads_begin;
	QuadTree quad;
	Quad q, temp_q;
	Vertex middle;

	//delete previous triangle list to save memory 
	delete Triangles;
	Triangles = NULL;

	/*********************************************\
	|*      init quad list with first quad       *|
	\*********************************************/

	q.a = CreateVertex(terrain_corner.x, terrain_corner.z);
	q.b = CreateVertex(terrain_corner.x + terrain_size, terrain_corner.z);
	q.c = CreateVertex(terrain_corner.x + terrain_size, terrain_corner.z + terrain_size);
	q.d = CreateVertex(terrain_corner.x, terrain_corner.z + terrain_size);

	quads-&gt;q = q;

	/*********************************************\
	|*     refine terrain up to max precision    *|
	\*********************************************/

	//refine terrain up to max precision
	while (precision &lt;= max_precision)
	{
		temp_quads = new QuadList;
		temp_quads_begin = temp_quads;
		while (quads)
		{
			q = quads-&gt;q;

			//quad should be refined
			//triangle should be refined
			if (ApproxError(q) || !mesh_simplification)
			{
				//refine quad into 4 quads and append it to temp_quad list
				middle.x = q.a.x + (q.b.x - q.a.x) / 2;
				middle.z = q.a.z + (q.d.z - q.a.z) / 2;

				temp_q.a = CreateVertex(q.a.x, q.a.z);
				temp_q.b = CreateVertex(middle.x, q.a.z);
				temp_q.c = CreateVertex(middle.x, middle.z);
				temp_q.d = CreateVertex(q.d.x, middle.z);

				temp_quads_node = new QuadList;
				temp_quads_node-&gt;q = temp_q;
				temp_quads-&gt;next = temp_quads_node;
				temp_quads = temp_quads_node;

				temp_q.a = CreateVertex(middle.x, q.a.z);
				temp_q.b = CreateVertex(q.b.x, q.b.z);
				temp_q.c = CreateVertex(q.b.x, middle.z);
				temp_q.d = CreateVertex(middle.x, middle.z);

				temp_quads_node = new QuadList;
				temp_quads_node-&gt;q = temp_q;
				temp_quads-&gt;next = temp_quads_node;
				temp_quads = temp_quads_node;

				temp_q.a = CreateVertex(middle.x, middle.z);
				temp_q.b = CreateVertex(q.b.x, middle.z);
				temp_q.c = CreateVertex(q.c.x, q.c.z);
				temp_q.d = CreateVertex(middle.x, q.c.z);

				temp_quads_node = new QuadList;
				temp_quads_node-&gt;q = temp_q;
				temp_quads-&gt;next = temp_quads_node;
				temp_quads = temp_quads_node;

				temp_q.a = CreateVertex(q.a.x, middle.z);
				temp_q.b = CreateVertex(middle.x, middle.z);
				temp_q.c = CreateVertex(middle.x, q.c.z);
				temp_q.d = CreateVertex(q.d.x, q.d.z);

				temp_quads_node = new QuadList;
				temp_quads_node-&gt;q = temp_q;
				temp_quads-&gt;next = temp_quads_node;
				temp_quads = temp_quads_node;

			}
			else
			{
				temp_quads_node = new QuadList;
				temp_quads_node-&gt;q = q;
				temp_quads-&gt;next = temp_quads_node;
				temp_quads = temp_quads_node;
			}
			quads = quads-&gt;next;
		}
		temp_quads = temp_quads_begin;
		quads = temp_quads-&gt;next;

		precision++;
	}

	/*********************************************\
	|*       create triangles out of quads       *|
	\*********************************************/

	while (quads)
	{
		q = quads-&gt;q;

		middle.x = q.a.x + (q.b.x - q.a.x) / 2;
		middle.z = q.a.z + (q.d.z - q.a.z) / 2;

		quad.t1.a = CreateVertex(q.a.x, q.a.z);
		quad.t1.b = CreateVertex(q.b.x, q.b.z);
		quad.t1.c = CreateVertex(middle.x, middle.z);

		quad.t2.a = CreateVertex(middle.x, middle.z);
		quad.t2.b = CreateVertex(q.b.x, q.b.z);
		quad.t2.c = CreateVertex(q.c.x, q.c.z);

		quad.t3.a = CreateVertex(q.d.x, q.d.z);
		quad.t3.b = CreateVertex(middle.x, middle.z);
		quad.t3.c = CreateVertex(q.c.x, q.c.z);

		quad.t4.a = CreateVertex(q.a.x, q.a.z);
		quad.t4.b = CreateVertex(middle.x, middle.z);
		quad.t4.c = CreateVertex(q.d.x, q.d.z);

		if (!Triangles)
		{
			Triangles = new TriangleList;
			triangles_begin = Triangles;
			Triangles-&gt;t = quad.t1;
		}
		else
		{
			triangles_node = new TriangleList;
			triangles_node-&gt;t = quad.t1;
			Triangles-&gt;next = triangles_node;
			Triangles = triangles_node;
		}
		triangles_node = new TriangleList;
		triangles_node-&gt;t = quad.t2;
		Triangles-&gt;next = triangles_node;
		Triangles = triangles_node;

		triangles_node = new TriangleList;
		triangles_node-&gt;t = quad.t3;
		Triangles-&gt;next = triangles_node;
		Triangles = triangles_node;

		triangles_node = new TriangleList;
		triangles_node-&gt;t = quad.t4;
		Triangles-&gt;next = triangles_node;
		Triangles = triangles_node;

		quads = quads-&gt;next;

		triangle_count += 4;
	}
	Triangles = triangles_begin;

	//delete quadlist to save memory
	delete quads;
	quads = NULL;
}
</code></pre>
<p>Gruß Jens</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1446528</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1446528</guid><dc:creator><![CDATA[jensr]]></dc:creator><pubDate>Wed, 30 Jan 2008 17:32:38 GMT</pubDate></item></channel></rss>