<?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[C++ Pointer Problem]]></title><description><![CDATA[<p>Hey,</p>
<p>Ich habe 2 Funktionen die mir 3 Werte von einem Array wiedergeben (oder besser gesagt ein Pointer).</p>
<p>Ich will natürlich erst beide Werte bestimmen und dann mir mal ausgeben lassen und zwar so:</p>
<pre><code>int* Version = GetGameVersion();
	int* update = CheckUpdate();

	cout &lt;&lt; Version[0] &lt;&lt; &quot; &quot; &lt;&lt; Version[1] &lt;&lt; &quot; &quot; &lt;&lt; Version[2] &lt;&lt; endl;
	cout &lt;&lt; update[0] &lt;&lt; &quot; &quot; &lt;&lt; update[1] &lt;&lt; &quot; &quot; &lt;&lt; update[2] &lt;&lt; endl;
</code></pre>
<p>Die Ausgabe von Version[0] - [2] sind korrekt und auch update[0] doch die Werte von update [1] und [2] sind 1638080 (was aber nicht sein kann!).</p>
<p>Tausche ich nun die beiden cout Befehle aus, dann kommt der Fehler bei Version [1] und [2].<br />
Woran kann das bitte liegen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Edit//<br />
So sehen die beiden Funktionen aus:</p>
<pre><code>int* pointer;
	int v[3];
	pointer = v;
	v[0] = 0;
	v[1] = 1;
	v[2] = 14;
	return pointer;
</code></pre>
<p>Edit2// Verwende Visual Studio 2005</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/298848/c-pointer-problem</link><generator>RSS for Node</generator><lastBuildDate>Thu, 13 Aug 2026 17:03:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/298848.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 28 Jan 2012 20:33:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++ Pointer Problem on Sat, 28 Jan 2012 20:35:30 GMT]]></title><description><![CDATA[<p>Hey,</p>
<p>Ich habe 2 Funktionen die mir 3 Werte von einem Array wiedergeben (oder besser gesagt ein Pointer).</p>
<p>Ich will natürlich erst beide Werte bestimmen und dann mir mal ausgeben lassen und zwar so:</p>
<pre><code>int* Version = GetGameVersion();
	int* update = CheckUpdate();

	cout &lt;&lt; Version[0] &lt;&lt; &quot; &quot; &lt;&lt; Version[1] &lt;&lt; &quot; &quot; &lt;&lt; Version[2] &lt;&lt; endl;
	cout &lt;&lt; update[0] &lt;&lt; &quot; &quot; &lt;&lt; update[1] &lt;&lt; &quot; &quot; &lt;&lt; update[2] &lt;&lt; endl;
</code></pre>
<p>Die Ausgabe von Version[0] - [2] sind korrekt und auch update[0] doch die Werte von update [1] und [2] sind 1638080 (was aber nicht sein kann!).</p>
<p>Tausche ich nun die beiden cout Befehle aus, dann kommt der Fehler bei Version [1] und [2].<br />
Woran kann das bitte liegen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Edit//<br />
So sehen die beiden Funktionen aus:</p>
<pre><code>int* pointer;
	int v[3];
	pointer = v;
	v[0] = 0;
	v[1] = 1;
	v[2] = 14;
	return pointer;
</code></pre>
<p>Edit2// Verwende Visual Studio 2005</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2173937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2173937</guid><dc:creator><![CDATA[Chris Benoit*]]></dc:creator><pubDate>Sat, 28 Jan 2012 20:35:30 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Pointer Problem on Sat, 28 Jan 2012 20:37:29 GMT]]></title><description><![CDATA[<p>Wie sehen die Funktionen aus? Sicher, dass der Speicher, auf den die Pointer zeigen, nach Ende der Funktionen noch gültig ist?</p>
<p>Edit:<br />
Aha, da ist der Fehler. Das Array in der Funktion existiert auf dem Stack, im &quot;automatischen Speicher&quot;, soll heißen, sobald die Funktion zurückkehrt, ist der Speicher ungültig. Man kann in C++ keine Arrays zurückgeben. Du kannst aber Strukturen oder Klassen zurückgeben, die Arrays enthalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2173939</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2173939</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sat, 28 Jan 2012 20:37:29 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Pointer Problem on Sat, 28 Jan 2012 20:39:07 GMT]]></title><description><![CDATA[<p>Habe es in meinen 1. Beitrag eingefügt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2173940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2173940</guid><dc:creator><![CDATA[Chris Benoit*]]></dc:creator><pubDate>Sat, 28 Jan 2012 20:39:07 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Pointer Problem on Sat, 28 Jan 2012 20:37:39 GMT]]></title><description><![CDATA[<p>Ich auch. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2173941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2173941</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sat, 28 Jan 2012 20:37:39 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Pointer Problem on Sat, 28 Jan 2012 20:39:56 GMT]]></title><description><![CDATA[<p>Hm, ich könnte ja die Variable v auch einfach als static definieren oder? Dann werden die Werte nach dem Funktionsende nicht gelöscht... Ist vllt. nicht so elegant aber bei einer kleinen Anwendung sollte das ja kein Problem sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2173942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2173942</guid><dc:creator><![CDATA[Chris Benoit*]]></dc:creator><pubDate>Sat, 28 Jan 2012 20:39:56 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Pointer Problem on Sat, 28 Jan 2012 20:45:57 GMT]]></title><description><![CDATA[<p>Du kannst, ja. Allerdings ist es wirklich sehr hässlich. Warum gibst du keine Struktur zurück?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2173946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2173946</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sat, 28 Jan 2012 20:45:57 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Pointer Problem on Sat, 28 Jan 2012 21:11:54 GMT]]></title><description><![CDATA[<p>Öhm, keine Ahnung! Aber dann mache ich es eben mit einer Struktur!<br />
Danke für die Hilfe! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2173955</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2173955</guid><dc:creator><![CDATA[Chris Benoit*]]></dc:creator><pubDate>Sat, 28 Jan 2012 21:11:54 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Pointer Problem on Sat, 28 Jan 2012 21:23:14 GMT]]></title><description><![CDATA[<p>Du kannst auch gleich einen operator &lt;&lt; dafür schreiben:</p>
<pre><code class="language-cpp">struct VersionInformation
{
  ...
};

std::ostream&amp; operator &lt;&lt; (std::ostream&amp; stream, const VersionInformation&amp; info)
{
  stream &lt;&lt; ...
  return stream;
}

int main()
{
  std::cout &lt;&lt; getVersion();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2173957</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2173957</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sat, 28 Jan 2012 21:23:14 GMT</pubDate></item></channel></rss>