<?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[Lokale Variablen als Rückgabewert]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich steige gerade nach langer Programmierpause von C# auf C++ um. Ich fange ganz bei den Anfängen an und habe dabei Probleme.</p>
<p>Wenn eine Methode einen Wert zurückgeben soll der in einer lokalen Variable gespeichert ist, wann funktioniert das? Also hängt das vom Datentyp ab?</p>
<p>Sowas funktioniert augenscheinlich:</p>
<p>int main(void)<br />
{<br />
int b = 0;<br />
b= test();<br />
cout &lt;&lt; b;<br />
}</p>
<p>int test()<br />
{<br />
int i = 4;<br />
return i;<br />
}</p>
<p>Bei Arrays dann aber wieder nicht? Unter C# konnte ich schlicht immer alles zurückgeben ohne darüber nachzudenken...</p>
<p>Danke</p>
<p>Gruß Gargork</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/239960/lokale-variablen-als-rückgabewert</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 06:52:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/239960.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 29 Apr 2009 21:27:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Lokale Variablen als Rückgabewert on Wed, 29 Apr 2009 21:27:05 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich steige gerade nach langer Programmierpause von C# auf C++ um. Ich fange ganz bei den Anfängen an und habe dabei Probleme.</p>
<p>Wenn eine Methode einen Wert zurückgeben soll der in einer lokalen Variable gespeichert ist, wann funktioniert das? Also hängt das vom Datentyp ab?</p>
<p>Sowas funktioniert augenscheinlich:</p>
<p>int main(void)<br />
{<br />
int b = 0;<br />
b= test();<br />
cout &lt;&lt; b;<br />
}</p>
<p>int test()<br />
{<br />
int i = 4;<br />
return i;<br />
}</p>
<p>Bei Arrays dann aber wieder nicht? Unter C# konnte ich schlicht immer alles zurückgeben ohne darüber nachzudenken...</p>
<p>Danke</p>
<p>Gruß Gargork</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1703389</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1703389</guid><dc:creator><![CDATA[Gargork]]></dc:creator><pubDate>Wed, 29 Apr 2009 21:27:05 GMT</pubDate></item><item><title><![CDATA[Reply to Lokale Variablen als Rückgabewert on Wed, 29 Apr 2009 21:58:48 GMT]]></title><description><![CDATA[<p>Solange du Objekte (keine Zeiger oder Referenzen) wie <code>int</code> , <code>double</code> , oder auch Instanzen von Klassen ( <code>struct</code> und <code>class</code> ) zurückgibst, brauchst du dir keine Gedanken zu machen. Der Wert wird kopiert und ist während des Funktionsaufrufs und des gesamten umschliessenden Ausdrucks gültig.</p>
<p>Problematisch wird es nur, wenn du Verweise (eben Zeiger oder Referenzen) dazu missbrauchst, die Gültigkeitsdauer von Variablen zu &quot;verlängern&quot;. In Anführungszeichen, weil man so das Gefühl hat, man könne immer noch auf die Werte zugreifen. In Wirklichkeit hat man damit jedoch undefiniertes Verhalten, weil das referenzierte Objekt bereits zerstört wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1703396</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1703396</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 29 Apr 2009 21:58:48 GMT</pubDate></item><item><title><![CDATA[Reply to Lokale Variablen als Rückgabewert on Wed, 29 Apr 2009 22:23:11 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>...</p>
</blockquote>
<p>Gut zusammengefasst <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> Kleine Ergänzung: Die []-Arrays sind trügerische kleine Miststücke und als Ganzes keine Objekte, sondern nur Zeiger auf einen Speicherbereich. Somit gibt man bei &quot; <code>int a[10]; return a;</code> &quot; eben einen Zeiger auf einen lokalen Speicherbereich zurück, das crasht natürlich (hoffentlich, wenn sowas unentdeckt bleibt, ist das die Hölle).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1703406</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1703406</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Wed, 29 Apr 2009 22:23:11 GMT</pubDate></item><item><title><![CDATA[Reply to Lokale Variablen als Rückgabewert on Wed, 29 Apr 2009 22:40:03 GMT]]></title><description><![CDATA[<p>Badestrand schrieb:</p>
<blockquote>
<p>Gut zusammengefasst <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
</blockquote>
<p>Vielen Dank. <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>
<p>Badestrand schrieb:</p>
<blockquote>
<p>Kleine Ergänzung: Die []-Arrays sind trügerische kleine Miststücke und als Ganzes keine Objekte, sondern nur Zeiger auf einen Speicherbereich.</p>
</blockquote>
<p>Da musst du vorsichtig sein. Arrays <em>sind</em> in C++ Objekte, nur werden sie in sehr vielen Kontexten implizit in einen Zeiger konvertiert. Arrays als solche können nicht als Rückgabewert auftreten (was zwar durch den <code>array</code> -Wrapper wieder wettgemacht wird).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1703408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1703408</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 29 Apr 2009 22:40:03 GMT</pubDate></item></channel></rss>