<?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[Pointer-Frage]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;

struct node
{
	int x;
	node* next;
};

class littleList
{
public:
	littleList(int x)
	{
		std::cout &lt;&lt; &quot;Objekt erstellt...&quot; &lt;&lt; std::endl;
		root = new node;
		root-&gt;x = x;
		root-&gt;next = 0;
	}
	void print()
	{
		std::cout &lt;&lt; &quot;Objekt wird gedruckt...&quot; &lt;&lt; std::endl;
		node* tmp = root;
		while(tmp-&gt;next)
			std::cout &lt;&lt; tmp-&gt;x &lt;&lt; std::endl;
	}
	node* insert(int x)
	{
		std::cout &lt;&lt; &quot;Objekt wird geändert...&quot; &lt;&lt; std::endl;
		node* tmp = root;
		while(tmp-&gt;next)
			tmp = tmp-&gt;next;
		tmp = tmp-&gt;next;
		tmp = new node;
		tmp-&gt;x = x;
		tmp-&gt;next = 0;
		return tmp;
	}
private:
	node* root;
};

int main()
{
	littleList objList(1);

	objList.insert(2);
	objList.insert(3);
	objList.insert(4);
	objList.insert(5);

	objList.print();
}
</code></pre>
<p>Wieso wird root nicht geändert?<br />
Ich dachte dass pointer adressen enthalten.</p>
<p>also sollte doch bei insert das tmp root verändern</p>
<p>liege ich da falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/268480/pointer-frage</link><generator>RSS for Node</generator><lastBuildDate>Tue, 01 Sep 2026 19:06:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/268480.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 09 Jun 2010 17:55:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Pointer-Frage on Wed, 09 Jun 2010 17:55:14 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;

struct node
{
	int x;
	node* next;
};

class littleList
{
public:
	littleList(int x)
	{
		std::cout &lt;&lt; &quot;Objekt erstellt...&quot; &lt;&lt; std::endl;
		root = new node;
		root-&gt;x = x;
		root-&gt;next = 0;
	}
	void print()
	{
		std::cout &lt;&lt; &quot;Objekt wird gedruckt...&quot; &lt;&lt; std::endl;
		node* tmp = root;
		while(tmp-&gt;next)
			std::cout &lt;&lt; tmp-&gt;x &lt;&lt; std::endl;
	}
	node* insert(int x)
	{
		std::cout &lt;&lt; &quot;Objekt wird geändert...&quot; &lt;&lt; std::endl;
		node* tmp = root;
		while(tmp-&gt;next)
			tmp = tmp-&gt;next;
		tmp = tmp-&gt;next;
		tmp = new node;
		tmp-&gt;x = x;
		tmp-&gt;next = 0;
		return tmp;
	}
private:
	node* root;
};

int main()
{
	littleList objList(1);

	objList.insert(2);
	objList.insert(3);
	objList.insert(4);
	objList.insert(5);

	objList.print();
}
</code></pre>
<p>Wieso wird root nicht geändert?<br />
Ich dachte dass pointer adressen enthalten.</p>
<p>also sollte doch bei insert das tmp root verändern</p>
<p>liege ich da falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909656</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909656</guid><dc:creator><![CDATA[Gulliver]]></dc:creator><pubDate>Wed, 09 Jun 2010 17:55:14 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer-Frage on Wed, 09 Jun 2010 18:42:11 GMT]]></title><description><![CDATA[<p>Gulliver schrieb:</p>
<blockquote>
<p>Wieso wird root nicht geändert?</p>
</blockquote>
<p>Weil du es nirgends änderst</p>
<p>Gulliver schrieb:</p>
<blockquote>
<p>Ich dachte dass pointer adressen enthalten.</p>
</blockquote>
<p>Richtig. Die Adresse des Objekts, auf das sie zeigen.</p>
<p>Gulliver schrieb:</p>
<blockquote>
<p>also sollte doch bei insert das tmp root verändern</p>
</blockquote>
<p>In deinem Fall nicht, weil du den Pointer solange auf tmp-&gt;next weiterschiebst, bis dieser 0 ist und somit auf kein Objekt mehr zeigt.</p>
<pre><code class="language-cpp">// jetzt zeigt tmp auf root
node* tmp = root;
// wenn tmp-&gt;next true (also ungleich 0) dann soll tmp auf das nächste Objekt zeigen
while(tmp-&gt;next)
    tmp = tmp-&gt;next;
// wenn tmp-&gt;next nun == 0, dann soll tmp = 0 werden.
tmp = tmp-&gt;next;
// tmp zeigt nun auf die Adresse des neuen Objekts
tmp = new node;
</code></pre>
<p>Im Destruktor solltest du deinen Speicher mit delete wieder freigeben um Speicherleaks zu vermeiden.</p>
<p>In deiner print-Funktion gibst du immer nur root aus.<br />
nach der Ausgabe solltest du auch hier dein tmp auf das nächste Objekt verweisen lassen, damit du alles ausgeben kannst. (sieht derzeit nach einer Endlosschleife aus)</p>
<p>// edit: Außerdem soltest du den root-zeiger noch auf das neue Objekt setzen.</p>
<pre><code class="language-cpp">// diese beiden Zeilen sind so besser ( nach der while-Schleife)
tmp-&gt;next = new node;
tmp = tmp-&gt;next;
[cpp]
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1909675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909675</guid><dc:creator><![CDATA[BasicMan01]]></dc:creator><pubDate>Wed, 09 Jun 2010 18:42:11 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer-Frage on Wed, 09 Jun 2010 19:31:13 GMT]]></title><description><![CDATA[<p>hallo bedeutet das dass ich wenn ich mit tmp durchgehe auch root verändere?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909698</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909698</guid><dc:creator><![CDATA[Gulliver]]></dc:creator><pubDate>Wed, 09 Jun 2010 19:31:13 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer-Frage on Wed, 09 Jun 2010 20:16:09 GMT]]></title><description><![CDATA[<p>Gulliver schrieb:</p>
<blockquote>
<p>hallo bedeutet das dass ich wenn ich mit tmp durchgehe auch root verändere?</p>
</blockquote>
<p>Nun, root änderst du im Constructor, in dem du root auf die Adresse des neuen Objekts zeigen lässt.</p>
<p>Das Objekt, auf welches root zeigt wird dann noch einmal beim 1. Insert geändert,<br />
wenn du &quot;next&quot; auf das neue Objekt (nachfolgendes) zeigen lässt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909724</guid><dc:creator><![CDATA[BasicMan01]]></dc:creator><pubDate>Wed, 09 Jun 2010 20:16:09 GMT</pubDate></item></channel></rss>