<?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[Speicher freigeben]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe mir eine eigene template Liste gemacht, die folgendermaßen ausschaut:</p>
<pre><code class="language-cpp">//Meine Liste mit verschachtelten Iterator
template &lt;class T&gt; class Liste{

         Node&lt;T&gt;* m_root;	//Zeiger auf erstes Element in der Liste
	int m_size;		

      public:
	Liste(){
		m_root=NULL; 
		m_size=0;
	}
	~Liste(){
		delete m_root;
	}

         class Iterator{

		Node&lt;T&gt;* iternode;

	public:
		Iterator(Node&lt;T&gt;* p) : iternode(p) {}
		~Iterator() {
			delete iternode;
		}
         }
}
--------------------
//Node Klasse
template &lt;class T&gt; class Liste;

template &lt;class T&gt; class Node{

	T m_node;		//m_node ist ein Element der Liste
	Node* m_next;	//m_next ist ein Zeiger auf das nächste Element 
	friend class Liste&lt;T&gt;; 
public:
	Node(T node, Node* next = 0) : m_node(node), m_next(next){}
	~Node(){
		delete m_next;
	}

};
</code></pre>
<p>Sie funktioniert einwandfrei. Doch dann wollte ich mich an die Speicherverwaltung ranmachen und den Speicherplatz der Zeiger auf die Objekte wieder freigeben. Bei der Klasse Node geht das delete im Destruktor.<br />
Jedoch wenn ich denn Destruktor so mach wie oben für die Klasse Liste und der Klasse Iterator, stürtzt mein Programm am Ende ab.</p>
<p>Kann mir bitte jemand helfen?</p>
<p>MfG<br />
Dosunmu</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/181801/speicher-freigeben</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 10:37:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/181801.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 17 May 2007 14:27:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Speicher freigeben on Thu, 17 May 2007 14:28:30 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe mir eine eigene template Liste gemacht, die folgendermaßen ausschaut:</p>
<pre><code class="language-cpp">//Meine Liste mit verschachtelten Iterator
template &lt;class T&gt; class Liste{

         Node&lt;T&gt;* m_root;	//Zeiger auf erstes Element in der Liste
	int m_size;		

      public:
	Liste(){
		m_root=NULL; 
		m_size=0;
	}
	~Liste(){
		delete m_root;
	}

         class Iterator{

		Node&lt;T&gt;* iternode;

	public:
		Iterator(Node&lt;T&gt;* p) : iternode(p) {}
		~Iterator() {
			delete iternode;
		}
         }
}
--------------------
//Node Klasse
template &lt;class T&gt; class Liste;

template &lt;class T&gt; class Node{

	T m_node;		//m_node ist ein Element der Liste
	Node* m_next;	//m_next ist ein Zeiger auf das nächste Element 
	friend class Liste&lt;T&gt;; 
public:
	Node(T node, Node* next = 0) : m_node(node), m_next(next){}
	~Node(){
		delete m_next;
	}

};
</code></pre>
<p>Sie funktioniert einwandfrei. Doch dann wollte ich mich an die Speicherverwaltung ranmachen und den Speicherplatz der Zeiger auf die Objekte wieder freigeben. Bei der Klasse Node geht das delete im Destruktor.<br />
Jedoch wenn ich denn Destruktor so mach wie oben für die Klasse Liste und der Klasse Iterator, stürtzt mein Programm am Ende ab.</p>
<p>Kann mir bitte jemand helfen?</p>
<p>MfG<br />
Dosunmu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1286823</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1286823</guid><dc:creator><![CDATA[dosunmu]]></dc:creator><pubDate>Thu, 17 May 2007 14:28:30 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher freigeben on Thu, 17 May 2007 15:36:36 GMT]]></title><description><![CDATA[<p>dosumu schrieb:</p>
<blockquote>
<pre><code class="language-cpp">~Iterator() {
            delete iternode;
        }
</code></pre>
</blockquote>
<p>Erklärung?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1286867</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1286867</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 17 May 2007 15:36:36 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher freigeben on Thu, 17 May 2007 15:39:00 GMT]]></title><description><![CDATA[<p>BTW: Ist die Einrückung willkürlich oder gehorcht sie irgendeinem Schema?</p>
<p>(SCNR)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1286871</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1286871</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 17 May 2007 15:39:00 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher freigeben on Thu, 17 May 2007 15:44:09 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10648">@LordJaxom</a><br />
Da sieht schon in meinem Programm anderes aus, hab beim einfügen ein bisschen herumgemurkst.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6642">@camper</a></p>
<p>Ui, scheiße, jetzt kommts mir. So was blödes, ein bisschen mehr nachdenken wär wahrscheinlich auch nicht schlecht. Thx camper</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1286873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1286873</guid><dc:creator><![CDATA[dosunmu]]></dc:creator><pubDate>Thu, 17 May 2007 15:44:09 GMT</pubDate></item></channel></rss>