<?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[Arrayeintrag über Pointer ändern]]></title><description><![CDATA[<p>Hallo*,</p>
<p>ist es möglich einen arrayeintrag mit Hilfe eines Pointers zu ändern?</p>
<p>Nutze ich folgendes:</p>
<pre><code class="language-cpp">Artist test;
	test = *ArtistArray;

	std::cout &lt;&lt; test.getName();
	test.setName(&quot;Hallllllllllooo&quot;);

	std::cout &lt;&lt; test.getName();
	std::cout &lt;&lt; ArtistArray[0].getName();
</code></pre>
<p>bekomme ich die Ausgabe:</p>
<pre><code>Default-Hallllllllllooo-Default
</code></pre>
<p>. Das kann ich nicht ganz nachvollziehen, eig greife ich doch richtig auf den Eintrag zu?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/306069/arrayeintrag-über-pointer-ändern</link><generator>RSS for Node</generator><lastBuildDate>Sat, 08 Aug 2026 10:05:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/306069.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 17 Jul 2012 06:10:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Arrayeintrag über Pointer ändern on Tue, 17 Jul 2012 06:10:30 GMT]]></title><description><![CDATA[<p>Hallo*,</p>
<p>ist es möglich einen arrayeintrag mit Hilfe eines Pointers zu ändern?</p>
<p>Nutze ich folgendes:</p>
<pre><code class="language-cpp">Artist test;
	test = *ArtistArray;

	std::cout &lt;&lt; test.getName();
	test.setName(&quot;Hallllllllllooo&quot;);

	std::cout &lt;&lt; test.getName();
	std::cout &lt;&lt; ArtistArray[0].getName();
</code></pre>
<p>bekomme ich die Ausgabe:</p>
<pre><code>Default-Hallllllllllooo-Default
</code></pre>
<p>. Das kann ich nicht ganz nachvollziehen, eig greife ich doch richtig auf den Eintrag zu?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233360</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233360</guid><dc:creator><![CDATA[Dome89]]></dc:creator><pubDate>Tue, 17 Jul 2012 06:10:30 GMT</pubDate></item><item><title><![CDATA[Reply to Arrayeintrag über Pointer ändern on Tue, 17 Jul 2012 06:17:47 GMT]]></title><description><![CDATA[<p>Vermutlich ist ein Bug in der Implementierung von Artist, die du leider nicht gezeigt hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233363</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 17 Jul 2012 06:17:47 GMT</pubDate></item><item><title><![CDATA[Reply to Arrayeintrag über Pointer ändern on Tue, 17 Jul 2012 06:20:33 GMT]]></title><description><![CDATA[<p>Wo ist denn da ein Pointer?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233364</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Tue, 17 Jul 2012 06:20:33 GMT</pubDate></item><item><title><![CDATA[Reply to Arrayeintrag über Pointer ändern on Tue, 17 Jul 2012 06:30:20 GMT]]></title><description><![CDATA[<p>Ich sehe das leicht anders <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<pre><code class="language-cpp">test = *ArtistArray;
</code></pre>
<p>An dieser Stelle wird der Zuweisungsoperator aufgerufen, so dass test eine Kopie von deinem Array-Eintrag ist.</p>
<p>Du musst entweder eine Referenz verwende oder einen Pointer:</p>
<pre><code class="language-cpp">Artist&amp; test(*ArtistArray);
</code></pre>
<p>So sollte es glaub ich funktionieren (ungetestet)</p>
<p>Gruß,<br />
XSpille</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233366</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233366</guid><dc:creator><![CDATA[XSpille]]></dc:creator><pubDate>Tue, 17 Jul 2012 06:30:20 GMT</pubDate></item><item><title><![CDATA[Reply to Arrayeintrag über Pointer ändern on Tue, 17 Jul 2012 08:13:47 GMT]]></title><description><![CDATA[<p>Dome89 schrieb:</p>
<blockquote>
<p>ist es möglich einen arrayeintrag mit Hilfe eines Pointers zu ändern?</p>
</blockquote>
<p>Klar, sofern die Elemente im Array überhaupt änderbar sind.</p>
<p>Dome89 schrieb:</p>
<blockquote>
<p>Nutze ich folgendes:</p>
<pre><code class="language-cpp">Artist test;
test = *ArtistArray;

std::cout &lt;&lt; test.getName();
test.setName(&quot;Hallllllllllooo&quot;);

std::cout &lt;&lt; test.getName();
std::cout &lt;&lt; ArtistArray[0].getName();
</code></pre>
<p>bekomme ich die Ausgabe:</p>
<pre><code>Default-Hallllllllllooo-Default
</code></pre>
<p>.<br />
Das kann ich nicht ganz nachvollziehen, eig greife ich doch richtig auf den Eintrag zu?</p>
</blockquote>
<p>Ich kenne Artist und ArtistArray jetzt nicht. Aber besonders überraschend sieht das Verhalten jetzt nicht aus. Vergleiche es mit</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;
int main()
{
  int arr[5] = {0,1,2,3,4};
  int t = arr[2];
  t += 10;
  cout &lt;&lt; arr[2] &lt;&lt; endl;
}
</code></pre>
<p>Du scheinst hier zu erwarten, dass das Programm 12 ausgibt. Warum? <code>arr[2]</code> und <code>t</code> sind zwei verschiedene int-Objekte wobei <code>t</code> mit dem Wert von <code>arr[2]</code> initialisiert wurde. Variablen von Klassentypen funktionieren in C++ genauso. Sie sind <em>keine</em> Referenzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233382</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233382</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Tue, 17 Jul 2012 08:13:47 GMT</pubDate></item></channel></rss>