<?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 und Funktionen]]></title><description><![CDATA[<p>Hallo Leute,<br />
habe im C++ Primer gelesen das folgendes gehen würde:</p>
<pre><code class="language-cpp">void reset(int *ptr)
{
    ptr = 0; // Änderungen würden nur in der lokalen Variable geändert werden
    *ptr = 0; // Änderungen werden das Argument ändern
}
</code></pre>
<p>So, nur wenn ich das ausprobiere wirft mir Visual C++ nen Error aus mit folgender Begründung:<br />
Ein Wert vom Typ int kann keiner Entinität des Types int* zugewiesen werden.<br />
Also entweder hab ich da im Buch was falsch verstanden, oder ich amche da i-ein Fehler.</p>
<p>-GhostfaceChilla-</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/296809/pointer-und-funktionen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 18:37:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/296809.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 12 Dec 2011 20:11:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Pointer und Funktionen on Mon, 12 Dec 2011 20:11:16 GMT]]></title><description><![CDATA[<p>Hallo Leute,<br />
habe im C++ Primer gelesen das folgendes gehen würde:</p>
<pre><code class="language-cpp">void reset(int *ptr)
{
    ptr = 0; // Änderungen würden nur in der lokalen Variable geändert werden
    *ptr = 0; // Änderungen werden das Argument ändern
}
</code></pre>
<p>So, nur wenn ich das ausprobiere wirft mir Visual C++ nen Error aus mit folgender Begründung:<br />
Ein Wert vom Typ int kann keiner Entinität des Types int* zugewiesen werden.<br />
Also entweder hab ich da im Buch was falsch verstanden, oder ich amche da i-ein Fehler.</p>
<p>-GhostfaceChilla-</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2156301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156301</guid><dc:creator><![CDATA[GhostfaceChilla]]></dc:creator><pubDate>Mon, 12 Dec 2011 20:11:16 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer und Funktionen on Mon, 12 Dec 2011 20:32:47 GMT]]></title><description><![CDATA[<p>Versuch's mal mit <code>NULL</code> bzw. <code>nullptr</code> statt <code>0</code> .</p>
<p>Oh - und die Reihenfolge der beiden Befehle ist unvorteilhaft.</p>
<p>~Edit: Grammatik~</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2156310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156310</guid><dc:creator><![CDATA[Caligulaminus]]></dc:creator><pubDate>Mon, 12 Dec 2011 20:32:47 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer und Funktionen on Mon, 12 Dec 2011 20:36:46 GMT]]></title><description><![CDATA[<p>Das ist falsch. Da das ein krasser Fehler ist, vermute ich mal, dass du da etwas falsch verstanden hast.</p>
<pre><code class="language-cpp">void foo(int var)
{
 var = 0; // Änderungen nur in Funktion
          // Da var eine lokale Variable in der Funktion ist
}

void bar(int *ptr)
{
 *ptr = 0;  // Änderungen werden nach außen getragen
            // Da über den Pointer auf den Wert auf den dieser zeigt zugegriffen werden kann
            // Der Pointer selbst ist in der Funktion lokal
}

void baz(int &amp;ref)
{
 ref = 0;  // Änderungen werden nach außen getragen
           // Referenzen sind ähnlich wie Pointer, aber mit Syntaxzucker
}
</code></pre>
<pre><code class="language-cpp">void foobar(int *ptr)
{
 int a;
 ptr = &amp;a;  // Ändert den Pointer, der lokal in der Funktion ist.
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2156312</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156312</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 12 Dec 2011 20:36:46 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer und Funktionen on Mon, 12 Dec 2011 21:10:46 GMT]]></title><description><![CDATA[<p>Also genaue Wiedergabe des Textes:</p>
<pre><code class="language-cpp">void reset(int *ip)
{
    *ip = 0; // changes the value of the object to wich ip points
    ip = 0;  // changes only the local value of ip; the argument is unchanged

}
</code></pre>
<p>Aber naja ok, danke für die Antworten. Aber habe sowieso gehört, das man in C++ eher Referenzen anstatt Pointer benutzt, dennoch ist auch der Umgang mit Pointer zu lernen und verstehen, finde ich.</p>
<p>-GhostfaceChilla</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2156323</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156323</guid><dc:creator><![CDATA[GhostfaceChilla]]></dc:creator><pubDate>Mon, 12 Dec 2011 21:10:46 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer und Funktionen on Mon, 12 Dec 2011 21:16:48 GMT]]></title><description><![CDATA[<p>Es geht da drum, dass Funktionsparameter immer lokale Variablen in deiner Funktion sind (die am Anfang mit einer Kopie der übergebenen Argumente initialisiert werden). Mit Pointern kannst du diese Lokalität brechen, da zwar der Wert des Pointers lokal in der Funktion ist, aber du dem Pointer folgen kannst und somit das, wo drauf er zeigt verändern kannst. Referenzen sind ein ähnlicher Mechanismus (bis auf Kleinigkeiten), bloß wesentlich bequemer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2156328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156328</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 12 Dec 2011 21:16:48 GMT</pubDate></item></channel></rss>