<?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-Problem]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich rätsle die ganze Zeit an einem Problem und verstehe aber noch nicht richtig warum es sich so verhält.</p>
<p>Die Frage ist, welche werte haben am Ende u, v und w? Lässt man sich es ausgeben, haben Sie die Ausgangswerte 7, 8 und 9.</p>
<p>Warum ist das so?<br />
Am Anfang werden ja ganz normal int-Variablen erzeugt und mit den Werten 7, 8 und 9 belegt. Danach wird ein Array der Länge 3 vom Typ &quot;Pointer auf ints&quot; erzeugt. Jeder dieser 3 Pointer zeigt nun auf die Speicherstelle einer der am Anfang festgelegten Variablen. Nun erzeuge ich einen neuen Pointer vom Typ &quot;int&quot; namens p, der auf den ersten Index des Arrays zeigt, also an den Index &quot;0&quot;. Nun wird er durch &quot;++p&quot; um einen Index nach rechts verschoben an die Arraystelle &quot;1&quot;.Der von hier nachfolgende Wert wird um 1 erhöht(an Index 2 des Arrays).Anschließend zeigt der Pointer an den Index 2 des Arrays (durch p++).</p>
<p>Wenn ich jetzt die Werte u, v und w ausgebe, werden die Anfangswerte ausgegeben, obwohl ich doch w auf 3 geändert habe!?!? Das verstehe ich nicht ganz.<br />
Kann mir das jemand erklären, warum das so ist?</p>
<p>Hier ist der Quell-Code:</p>
<pre><code class="language-cpp">int u=7, v=8, w=9;
int* array[3];
array[0]=&amp;u;
array[1]=&amp;v;
array[2]=&amp;w;
int* p=array;
++p;
p[1]=3;
p++;
</code></pre>
<p>Vielen Dank im Voraus!!<br />
Viele Grüße!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/289803/pointer-problem</link><generator>RSS for Node</generator><lastBuildDate>Tue, 18 Aug 2026 23:34:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/289803.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 13 Jul 2011 08:38:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Pointer-Problem on Wed, 13 Jul 2011 08:38:13 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich rätsle die ganze Zeit an einem Problem und verstehe aber noch nicht richtig warum es sich so verhält.</p>
<p>Die Frage ist, welche werte haben am Ende u, v und w? Lässt man sich es ausgeben, haben Sie die Ausgangswerte 7, 8 und 9.</p>
<p>Warum ist das so?<br />
Am Anfang werden ja ganz normal int-Variablen erzeugt und mit den Werten 7, 8 und 9 belegt. Danach wird ein Array der Länge 3 vom Typ &quot;Pointer auf ints&quot; erzeugt. Jeder dieser 3 Pointer zeigt nun auf die Speicherstelle einer der am Anfang festgelegten Variablen. Nun erzeuge ich einen neuen Pointer vom Typ &quot;int&quot; namens p, der auf den ersten Index des Arrays zeigt, also an den Index &quot;0&quot;. Nun wird er durch &quot;++p&quot; um einen Index nach rechts verschoben an die Arraystelle &quot;1&quot;.Der von hier nachfolgende Wert wird um 1 erhöht(an Index 2 des Arrays).Anschließend zeigt der Pointer an den Index 2 des Arrays (durch p++).</p>
<p>Wenn ich jetzt die Werte u, v und w ausgebe, werden die Anfangswerte ausgegeben, obwohl ich doch w auf 3 geändert habe!?!? Das verstehe ich nicht ganz.<br />
Kann mir das jemand erklären, warum das so ist?</p>
<p>Hier ist der Quell-Code:</p>
<pre><code class="language-cpp">int u=7, v=8, w=9;
int* array[3];
array[0]=&amp;u;
array[1]=&amp;v;
array[2]=&amp;w;
int* p=array;
++p;
p[1]=3;
p++;
</code></pre>
<p>Vielen Dank im Voraus!!<br />
Viele Grüße!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2092178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2092178</guid><dc:creator><![CDATA[dom1aner]]></dc:creator><pubDate>Wed, 13 Jul 2011 08:38:13 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer-Problem on Wed, 13 Jul 2011 08:44:19 GMT]]></title><description><![CDATA[<p>Du hast nicht w geändert, sondern den Pointer im Array, der auf w zeigt.</p>
<p>Einfach am Anfang der Zeile 8 noch ein Sternchen davor schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2092181</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2092181</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Wed, 13 Jul 2011 08:44:19 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer-Problem on Wed, 13 Jul 2011 09:18:29 GMT]]></title><description><![CDATA[<p>Die Aufgabe lautet so:</p>
<p>Betrachten Sie folgende Quellcode-Zeilen:</p>
<pre><code class="language-cpp">int u=7, v=8, w=9;
int* array[3];
array[0]=u;
array[1]=v;
array[2]=w;
int* p=array;
++p;
p[1]=3;
p++;
</code></pre>
<p>Falls Sie der Meinung sind, dass dieser Quellcode nicht kompiliert oder bei der Ausführung zu einem Programmabsturz führt, korrigieren Sie ihn (ohne die ersten beiden Zeilen zu verändern).<br />
Fügen Sie außerdem noch eine Zeile hinzu, die p benutzt, um den (direkt oder indirekt) referenzierten intWert auszugeben. Welcher Wert wird ausgegeben?<br />
Welche Werte haben u, v und w am Ende?</p>
<p>Ich habe mir gedacht, dass man diese 3 Zeilen</p>
<pre><code class="language-cpp">array[0]=u;
array[1]=v;
array[2]=w;
</code></pre>
<p>in</p>
<pre><code class="language-cpp">array[0]=&amp;u;
array[1]=&amp;v;
array[2]=&amp;w;
</code></pre>
<p>ändern muss. Jedoch kommt er mit der Zuweisung</p>
<pre><code class="language-cpp">int* p = array;
</code></pre>
<p>auch nicht klar.</p>
<p>Ich komm einfach nicht weiter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2092201</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2092201</guid><dc:creator><![CDATA[dom1aner]]></dc:creator><pubDate>Wed, 13 Jul 2011 09:18:29 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer-Problem on Wed, 13 Jul 2011 09:24:38 GMT]]></title><description><![CDATA[<p>Vielleicht ist das gemeint:</p>
<pre><code class="language-cpp">int u=7, v=8, w=9;
	int* array[3];
	array[0]=&amp;u;
	array[1]=&amp;v;
	array[2]=&amp;w;
	int** p=array;
	++p;
	*p[1]=3;
	p++;
</code></pre>
<p>Das läßt sich aber nicht sicher sagen, weil es unzählig viele Lösungen gibt und die Aufgabe vollkommen praxisfern ist. Mein Beileid.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2092206</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2092206</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Wed, 13 Jul 2011 09:24:38 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer-Problem on Wed, 13 Jul 2011 09:28:33 GMT]]></title><description><![CDATA[<p>Dankeschön : )</p>
<p>Ja diese Lösung hab ich grad auch am Laufen. Ja die aufgabe ist echt etwas seltsam ; ) Trotzdem danke für eure Hilfe! Echt super!</p>
<p>Lg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2092208</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2092208</guid><dc:creator><![CDATA[dom1aner]]></dc:creator><pubDate>Wed, 13 Jul 2011 09:28:33 GMT</pubDate></item></channel></rss>