<?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[Gültigkeit von Variablen]]></title><description><![CDATA[<p>Hoi,</p>
<p>Ich habe eine kleine Frage zut gültigkeit von Variablen in Funktionen.</p>
<pre><code class="language-cpp">func1(char* word)
{
    cout &lt;&lt; word;
}

func2()
{
    char* word=&quot;Hallo&quot;;
    func1(word);
}
</code></pre>
<p>In Funktion 2 habe ich die Variable word.<br />
Wie lange existiert diese?</p>
<p>Existiert sie bis die Funtkion per return verlassen wird?<br />
oder<br />
Existiert bis eine andere Funktion wie in meinen Beispiel angesprungen wird??</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/165881/gültigkeit-von-variablen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 02:28:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/165881.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 23 Nov 2006 19:58:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Gültigkeit von Variablen on Thu, 23 Nov 2006 19:58:07 GMT]]></title><description><![CDATA[<p>Hoi,</p>
<p>Ich habe eine kleine Frage zut gültigkeit von Variablen in Funktionen.</p>
<pre><code class="language-cpp">func1(char* word)
{
    cout &lt;&lt; word;
}

func2()
{
    char* word=&quot;Hallo&quot;;
    func1(word);
}
</code></pre>
<p>In Funktion 2 habe ich die Variable word.<br />
Wie lange existiert diese?</p>
<p>Existiert sie bis die Funtkion per return verlassen wird?<br />
oder<br />
Existiert bis eine andere Funktion wie in meinen Beispiel angesprungen wird??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180320</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180320</guid><dc:creator><![CDATA[Tuffly]]></dc:creator><pubDate>Thu, 23 Nov 2006 19:58:07 GMT</pubDate></item><item><title><![CDATA[Reply to Gültigkeit von Variablen on Thu, 23 Nov 2006 20:01:57 GMT]]></title><description><![CDATA[<p>Du kannst innerhalb von func2() immer noch auf sie zugreifen nach dem Aufruf von func1(), nur außerhalb von func2() halt nicht ... ja also, wenn du so willst bis zur return-Anweisung</p>
<p>was meinst du mit existiert? auf dem Speicher vorhanden ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180323</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180323</guid><dc:creator><![CDATA[Checker*amp*Murckser]]></dc:creator><pubDate>Thu, 23 Nov 2006 20:01:57 GMT</pubDate></item><item><title><![CDATA[Reply to Gültigkeit von Variablen on Thu, 23 Nov 2006 20:02:40 GMT]]></title><description><![CDATA[<p>Ersteres. Sie existiert aber auch nur innerhalb der Funktion, kannst also in func2() nicht auf sie zugreifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180324</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180324</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Thu, 23 Nov 2006 20:02:40 GMT</pubDate></item><item><title><![CDATA[Reply to Gültigkeit von Variablen on Thu, 23 Nov 2006 20:59:08 GMT]]></title><description><![CDATA[<p>Ich meine im Speicher vorhanden, sodass ich mit pointern auf sie zugreifen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180361</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180361</guid><dc:creator><![CDATA[Tuffly]]></dc:creator><pubDate>Thu, 23 Nov 2006 20:59:08 GMT</pubDate></item><item><title><![CDATA[Reply to Gültigkeit von Variablen on Thu, 23 Nov 2006 21:02:39 GMT]]></title><description><![CDATA[<p>Solange du nicht den Gülltigkeitsbereich (sprich den Bereich der geschweiften Klammern, in denen du die lokale Variable definierst) verlässt, ist die Variable auch im Speicher vorhanden. Danach ist nichts mehr garantiert...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180366</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180366</guid><dc:creator><![CDATA[Schildkroete]]></dc:creator><pubDate>Thu, 23 Nov 2006 21:02:39 GMT</pubDate></item><item><title><![CDATA[Reply to Gültigkeit von Variablen on Fri, 24 Nov 2006 08:16:06 GMT]]></title><description><![CDATA[<p>Hi Tuffly ,</p>
<p>ich vermute, die Schwierigkeit liegt darin, dass Du &quot;nicht hierarchisch denkst&quot;:</p>
<p>Wenn Du von func2() aus func1() aufrufst, bleibst Du im scope von func2() !<br />
Deswegen kann func1() in dem Fall erfolgreich (vermittelt durch den Zeiger &quot;word&quot;) auf den Speicher zugreifen, in den Du &quot;Hallo&quot; geschrieben hast.</p>
<p>Wenn Du func1() von woanders heraus aufrufst, wird &quot;word&quot; woanders hinzeigen ... und selbst wenn Du ihn auf dieselbe Speicheradresse biegst (was problemlos geht), würde er auf ein ungültiges Objekt verweisen.</p>
<p>Noch 2 &quot;Anfänger-Aspekte&quot; (die Du vielleicht schon kennst - aber vielleicht auch nicht):</p>
<ul>
<li>&quot;word in func1()&quot; ist als Variable unabhängig von &quot;word in func2()&quot;; benenne mal eine von beiden um: Es wird weiterhin funktionieren; beim Aufruf von func1() wird der Inhalt von &quot;func2_word&quot; (Inhalt ist Adresse von &quot;Hallo&quot;) in &quot;func1_word&quot; kopiert.</li>
<li>Da &quot;Hallo&quot; ein &quot;Stringliteral&quot; ist (also zur Compilezeit festelegter und initialisierter Speicherbereich), darf man in ihn nicht hineinschreiben. Hier solltest Du mit &quot;const-correctness&quot; arbeiten - immerhin sollten func1() und func2() wissen, dass sie da nicht reinschreiben dürfen. (Mich überrascht, dass es dabei keine compilerwarning gibt)...</li>
</ul>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180493</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180493</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Fri, 24 Nov 2006 08:16:06 GMT</pubDate></item></channel></rss>