<?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[Frage zu Code]]></title><description><![CDATA[<p>Aus mir unbekannten Gründen bekomm ich hier eine endlosschleife <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

bool foo(int x)
{
  x--;
  std::cout&lt;&lt;x&lt;&lt;&quot; &quot;;

	if(x&gt;0)return 1;
	else return 0;
}

void main(void)
{

	int y=15;

while(foo(y));

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/259963/frage-zu-code</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 15:45:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/259963.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 30 Jan 2010 00:19:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu Code on Sat, 30 Jan 2010 00:19:16 GMT]]></title><description><![CDATA[<p>Aus mir unbekannten Gründen bekomm ich hier eine endlosschleife <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

bool foo(int x)
{
  x--;
  std::cout&lt;&lt;x&lt;&lt;&quot; &quot;;

	if(x&gt;0)return 1;
	else return 0;
}

void main(void)
{

	int y=15;

while(foo(y));

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1847353</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847353</guid><dc:creator><![CDATA[blurry33313]]></dc:creator><pubDate>Sat, 30 Jan 2010 00:19:16 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Sat, 30 Jan 2010 00:20:49 GMT]]></title><description><![CDATA[<p>ups ich brauch wohl was rekursives <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/1847354</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847354</guid><dc:creator><![CDATA[blurry123]]></dc:creator><pubDate>Sat, 30 Jan 2010 00:20:49 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Sat, 30 Jan 2010 00:25:00 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">bool foo(int x)
{
  x--;
  std::cout&lt;&lt;x&lt;&lt;&quot; &quot;;

  foo(x);                      //Dachte mir ich bau die Rekursion hier ein 

	if(x&gt;0)return 1;
	else {return 0;}

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1847355</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847355</guid><dc:creator><![CDATA[blurry331]]></dc:creator><pubDate>Sat, 30 Jan 2010 00:25:00 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Sat, 30 Jan 2010 00:31:43 GMT]]></title><description><![CDATA[<p>mit der Platzierung der Rekursion scheints irgendwie auch net hinzuhaun <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1847357</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847357</guid><dc:creator><![CDATA[blurry425]]></dc:creator><pubDate>Sat, 30 Jan 2010 00:31:43 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Sat, 30 Jan 2010 00:42:33 GMT]]></title><description><![CDATA[<p>Die Rekursion hat da gar keinen Zweck. Zu foo:<br />
-x(15) wird dekrementiert (14)<br />
-wenn x(14) größer ist als 0, gebe 1(true) zurück</p>
<p>Und da foo() == 1 ist, wird die while()-Schleife nie enden (same as while(true)). Ich glaube du hattest eher eine Referenz auf y vor:</p>
<pre><code class="language-cpp">bool foo(int &amp;x)
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1847358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847358</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Sat, 30 Jan 2010 00:42:33 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Sat, 30 Jan 2010 00:55:21 GMT]]></title><description><![CDATA[<p>Verwende nächstes Mal bitte einen brauchbaren Threadtitel. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Was möchtest du genau erreichen? Eine Funktion, die sich rekursiv mit dekrementiertem Argument aufruft und bei Null aufhört? In C++ ist es eigentlich unüblich, für sowas Rekursion zu verwenden. Eine Schleife braucht weniger Code und ist schneller. Aber es kann natürlich dennoch eine gute Übung sein.</p>
<pre><code class="language-cpp">void foo(int x)
{
    std::cout &lt;&lt; x &lt;&lt; &quot; &quot;;

    if (x == 0)
        return;
    else
        foo(x-1);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1847359</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847359</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 30 Jan 2010 00:55:21 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Sat, 30 Jan 2010 01:10:45 GMT]]></title><description><![CDATA[<p>Bei <em>sowas</em> rekursiv zu werden halte ich nun auch wieder für übertrieben. <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="😉"
    /> Zumindest wenn man in C++, und nicht in Lisp/Scheme/... programmiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1847361</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847361</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 30 Jan 2010 01:10:45 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Sat, 30 Jan 2010 15:56:29 GMT]]></title><description><![CDATA[<p>ich hab mal noch eine kurze Frage. Will deswegen keinen neuen Thread anlegen.</p>
<p>Ich hab 2 Zeiger die beide auf denselben int Wert zeigen.</p>
<p>z.B. int x;</p>
<p>int* y=&amp;x;<br />
int* z=&amp;x;</p>
<p>jetzt mach ich folgendes :</p>
<p>free(y);</p>
<p>das müßte doch eigentlich zum Programmabsturz führen weil z auch auf x zeigt ??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1847584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847584</guid><dc:creator><![CDATA[blurry43525]]></dc:creator><pubDate>Sat, 30 Jan 2010 15:56:29 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Sat, 30 Jan 2010 16:00:34 GMT]]></title><description><![CDATA[<p>Nur wenn du z danach weiterverwendest. Und undefiniertes Verhalten != Programmabsturz. Auch darfst du nur free auf Zeiger aufrufen, wenn der Speicher mittels malloc angefordert wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1847585</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847585</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Sat, 30 Jan 2010 16:00:34 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Sat, 30 Jan 2010 16:04:06 GMT]]></title><description><![CDATA[<p>int* y=new int;</p>
<p>jetzt zeigt y irgendwohin oder ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1847587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847587</guid><dc:creator><![CDATA[blurry255]]></dc:creator><pubDate>Sat, 30 Jan 2010 16:04:06 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Sat, 30 Jan 2010 16:08:25 GMT]]></title><description><![CDATA[<p>Hier bekomm ich auch nen Fehler</p>
<pre><code class="language-cpp">void main(void)
{
    int x=5;
	int* y=new int;
	int* z=new int;

	y=&amp;x;
	z=&amp;x;

	delete y;

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1847592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847592</guid><dc:creator><![CDATA[blurry6356]]></dc:creator><pubDate>Sat, 30 Jan 2010 16:08:25 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Sat, 30 Jan 2010 16:10:49 GMT]]></title><description><![CDATA[<p>und übrigends auch hier assertion failure</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

void main(void)
{
    int x=5;  int u=7;
	int* y=new int;

    y=&amp;x;
	delete y;
    y=&amp;u;

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1847594</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847594</guid><dc:creator><![CDATA[blurry4525]]></dc:creator><pubDate>Sat, 30 Jan 2010 16:10:49 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Sat, 30 Jan 2010 16:17:07 GMT]]></title><description><![CDATA[<p>Ja, klar, weil x ein automatisches Objekt ist und du es indirekt zerstören willst (respektive es 2x zerstört wird).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1847601</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847601</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 30 Jan 2010 16:17:07 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Sat, 30 Jan 2010 17:07:14 GMT]]></title><description><![CDATA[<p>blurry43525 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">int x;

int* y=&amp;x;
int* z=&amp;x;

free(y);
</code></pre>
<p>das müßte doch eigentlich zum Programmabsturz führen weil z auch auf x zeigt ??</p>
</blockquote>
<p>Nein, nicht deswegen. Aber du erzeugst undefiniertes Verhalten, weil du ein automatisches Objekt mit <code>free()</code> freigeben willst. In C++ gibt es in den allermeisten Fällen kein Bedarf für <code>malloc()</code> und <code>free()</code> , verwende die C++-Speicheroperatoren <code>new</code> und <code>delete</code> !</p>
<p>Was deinen anderen Code angeht:</p>
<pre><code class="language-cpp">// Der Rückgabetyp von main ist int und NICHT void!
void main(void)
{
    int x=5;
	int* y=new int;
	int* z=new int;

	y=&amp;x; // Memory Leak 1
	z=&amp;x; // Memory Leak 2

	delete y; // delete auf automatisches Objekt
}
</code></pre>
<p>Ich empfehle dir, den <a href="http://magazin.c-plusplus.net/artikel/Pointer%20in%20C%28PlusPlus%29" rel="nofollow">Artikel</a> über Zeiger in C++ nachzulesen. Dir fehlt offenbar noch ein wenig das Verständnis.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1847634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847634</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 30 Jan 2010 17:07:14 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Sat, 30 Jan 2010 21:53:40 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;

class A{

public:
	void C(){};
	void D(){};
	void E(){};
	};

class B:public A{
public:
	void F(){};
	void G(){};
	void H(){};
};

void main(void)
{

	A* x=new B;

	//Der Zeiger hat nur auf Funktionen aus A Zugriff
	//aber nicht aus B, obwohl er auf B zeigt
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1847790</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847790</guid><dc:creator><![CDATA[blurry1234]]></dc:creator><pubDate>Sat, 30 Jan 2010 21:53:40 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Sun, 31 Jan 2010 09:30:27 GMT]]></title><description><![CDATA[<blockquote>
<pre><code class="language-cpp">//Der Zeiger hat nur auf Funktionen aus A Zugriff
  //aber nicht aus B, obwohl er auf B zeigt
</code></pre>
</blockquote>
<p>Ich empfehle dir, dir etwas zum Thema Zeiger und Polymorphie durchzulesen. Dir fehlt offenbar noch ein wenig das Verständnis.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1847905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847905</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 31 Jan 2010 09:30:27 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Sun, 31 Jan 2010 11:02:50 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<blockquote>
<pre><code class="language-cpp">//Der Zeiger hat nur auf Funktionen aus A Zugriff
  //aber nicht aus B, obwohl er auf B zeigt
</code></pre>
</blockquote>
<p>Ich empfehle dir, dir etwas zum Thema Zeiger und Polymorphie durchzulesen. Dir fehlt offenbar noch ein wenig das Verständnis.</p>
</blockquote>
<p>Und vielleicht noch die Frage dazustellen:<br />
Auf was zeigt &quot;<strong>A</strong>* x&quot;? <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>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1847941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847941</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sun, 31 Jan 2010 11:02:50 GMT</pubDate></item></channel></rss>