<?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[Programm erklären]]></title><description><![CDATA[<p>Hallo, und zwar wollt ich euch fragen, ob ihr mir helft, ein Programm zu verstehen. <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>Ich habe es mit jemanden zusammen gemacht, aber verstehe es nicht (C++ kann ich, nur dieses Thema ist nur schwer <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="😞"
    /> ).<br />
Das Thema ist halt Zeiger und Verkettete Listen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>Könnt ihr mir vielleicht das erklären?<br />
(Ob ihr mir ALLES erklärt oder nur ein Teil, bleibt euch überlassen, wobei ich mich freuen würden, wenn ich ALLES verstehen würde.)</p>
<p>Was da passiert, wieso es passiert usw,... Ich MUSS es verstehen, weil ich es erklären muss. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /><br />
Achja, das Programm ist fertig, da muss nichts bearbeitet werden oder so, sondern NUR erklären. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /><br />
Ich muss ja auch verstehen, was da passiert, ansonsten wird das schwer mit dem eigenen Programm schreiben, irgendwann später mal. <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>Hier der Code:</p>
<p>Danke im voraus <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="👍"
    /> <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="🙂"
    /> <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>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

struct Event
{
	string Name;
	int Sitzplätze;
	int leereSitzplätze;
	Event *next;
};

void ausgabe(Event ev)
{
	cout &lt;&lt; &quot;Event: &quot; &lt;&lt; ev.Name &lt;&lt; endl &lt;&lt; &quot;Sitzplaetze: &quot; &lt;&lt; ev.Sitzplätze &lt;&lt; endl 
	&lt;&lt; &quot;Leere Sitzplaetze: &quot; &lt;&lt; ev.leereSitzplätze &lt;&lt; endl &lt;&lt; endl;
}

void ausgabeListe(Event* startKnoten)
{
	Event* aktuellerKnoten = startKnoten;
 while (aktuellerKnoten!=0)
	{
		ausgabe((*aktuellerKnoten));
		aktuellerKnoten = aktuellerKnoten-&gt;next;
	}
}

Event* neuesEvent(string NameDesEventes,int sitzplätze, int leeresitzplätze)
{
	Event* neu = new Event;
	neu-&gt;Name = NameDesEventes;
	neu-&gt;leereSitzplätze=leeresitzplätze;
	neu-&gt;Sitzplätze = sitzplätze;
	return neu;
}

int main() 
{	
	Event *StartZeiger = NULL, *EndZeiger = NULL, *AktuellerZeiger;

	StartZeiger = neuesEvent(&quot;Romeo &amp; Julia [Tanzstueck]&quot;,1000,580);
	AktuellerZeiger = StartZeiger;

	AktuellerZeiger-&gt;next = neuesEvent(&quot;Engel der Armen [Komoedie]&quot;,1000,450);
	AktuellerZeiger = AktuellerZeiger-&gt;next;

	AktuellerZeiger-&gt;next = neuesEvent(&quot;Sandmann [Nachtstueck]&quot;,1000,690);
	AktuellerZeiger = AktuellerZeiger-&gt;next;

	AktuellerZeiger-&gt;next = neuesEvent(&quot;Hoerbar [Kammerspiele] &quot;,1000,600);
	AktuellerZeiger = AktuellerZeiger-&gt;next;

	AktuellerZeiger-&gt;next = EndZeiger;

	ausgabeListe(StartZeiger);

	system(&quot;pause&quot;);

	return 0;

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/298525/programm-erklären</link><generator>RSS for Node</generator><lastBuildDate>Thu, 13 Aug 2026 19:41:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/298525.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 22 Jan 2012 11:18:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Programm erklären on Sun, 22 Jan 2012 11:23:10 GMT]]></title><description><![CDATA[<p>Hallo, und zwar wollt ich euch fragen, ob ihr mir helft, ein Programm zu verstehen. <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>Ich habe es mit jemanden zusammen gemacht, aber verstehe es nicht (C++ kann ich, nur dieses Thema ist nur schwer <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="😞"
    /> ).<br />
Das Thema ist halt Zeiger und Verkettete Listen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>Könnt ihr mir vielleicht das erklären?<br />
(Ob ihr mir ALLES erklärt oder nur ein Teil, bleibt euch überlassen, wobei ich mich freuen würden, wenn ich ALLES verstehen würde.)</p>
<p>Was da passiert, wieso es passiert usw,... Ich MUSS es verstehen, weil ich es erklären muss. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /><br />
Achja, das Programm ist fertig, da muss nichts bearbeitet werden oder so, sondern NUR erklären. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /><br />
Ich muss ja auch verstehen, was da passiert, ansonsten wird das schwer mit dem eigenen Programm schreiben, irgendwann später mal. <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>Hier der Code:</p>
<p>Danke im voraus <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="👍"
    /> <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="🙂"
    /> <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>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

struct Event
{
	string Name;
	int Sitzplätze;
	int leereSitzplätze;
	Event *next;
};

void ausgabe(Event ev)
{
	cout &lt;&lt; &quot;Event: &quot; &lt;&lt; ev.Name &lt;&lt; endl &lt;&lt; &quot;Sitzplaetze: &quot; &lt;&lt; ev.Sitzplätze &lt;&lt; endl 
	&lt;&lt; &quot;Leere Sitzplaetze: &quot; &lt;&lt; ev.leereSitzplätze &lt;&lt; endl &lt;&lt; endl;
}

void ausgabeListe(Event* startKnoten)
{
	Event* aktuellerKnoten = startKnoten;
 while (aktuellerKnoten!=0)
	{
		ausgabe((*aktuellerKnoten));
		aktuellerKnoten = aktuellerKnoten-&gt;next;
	}
}

Event* neuesEvent(string NameDesEventes,int sitzplätze, int leeresitzplätze)
{
	Event* neu = new Event;
	neu-&gt;Name = NameDesEventes;
	neu-&gt;leereSitzplätze=leeresitzplätze;
	neu-&gt;Sitzplätze = sitzplätze;
	return neu;
}

int main() 
{	
	Event *StartZeiger = NULL, *EndZeiger = NULL, *AktuellerZeiger;

	StartZeiger = neuesEvent(&quot;Romeo &amp; Julia [Tanzstueck]&quot;,1000,580);
	AktuellerZeiger = StartZeiger;

	AktuellerZeiger-&gt;next = neuesEvent(&quot;Engel der Armen [Komoedie]&quot;,1000,450);
	AktuellerZeiger = AktuellerZeiger-&gt;next;

	AktuellerZeiger-&gt;next = neuesEvent(&quot;Sandmann [Nachtstueck]&quot;,1000,690);
	AktuellerZeiger = AktuellerZeiger-&gt;next;

	AktuellerZeiger-&gt;next = neuesEvent(&quot;Hoerbar [Kammerspiele] &quot;,1000,600);
	AktuellerZeiger = AktuellerZeiger-&gt;next;

	AktuellerZeiger-&gt;next = EndZeiger;

	ausgabeListe(StartZeiger);

	system(&quot;pause&quot;);

	return 0;

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2171049</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2171049</guid><dc:creator><![CDATA[chestor00]]></dc:creator><pubDate>Sun, 22 Jan 2012 11:23:10 GMT</pubDate></item><item><title><![CDATA[Reply to Programm erklären on Sun, 22 Jan 2012 11:37:11 GMT]]></title><description><![CDATA[<p>Nee, so geht das nicht. Du kannst nicht einfach sagen &quot;Ich hätte gern alles erklärt&quot;. Versuch das mal schön selbst zu verstehen. So kompliziert ist das nicht. Und wenn Du bei einer Stelle nicht weiterkommst, kannst Du <em>gezielt</em> danach fragen.</p>
<p>Also, wo hakt's denn jetzt genau?</p>
<p>Übrigens: Umlaute sind bei Bezeichnern nicht standardkonform.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2171057</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2171057</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sun, 22 Jan 2012 11:37:11 GMT</pubDate></item><item><title><![CDATA[Reply to Programm erklären on Sun, 22 Jan 2012 12:41:27 GMT]]></title><description><![CDATA[<p>Wenn ich es geschafft hätte, es mir zu erklären, hätte ich hier nicht gefragt, aber ich habs doch versucht, mir selber das beizubringen, aber ich finde dieses Thema schon sehr schwer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2171083</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2171083</guid><dc:creator><![CDATA[chestor00]]></dc:creator><pubDate>Sun, 22 Jan 2012 12:41:27 GMT</pubDate></item><item><title><![CDATA[Reply to Programm erklären on Sun, 22 Jan 2012 13:27:38 GMT]]></title><description><![CDATA[<p>Es sieht nur so aus, als ob Du hier fragst, weil Du kein Bock hast, dich in das Thema selbst reinzuarbeiten. Es sieht so aus, als würdest Du lieber den Weg des geringsten Widerstands gehen und darauf hoffen, dass Dir jemand die Arbeit abnimmt, während Du Dir hier und da noch ein YouTube Video reinziehst oder ein Browserspiel zockst. So kommt Deine Frage bei mir an. Und das motiviert mich natürlich nicht dazu, Dir zu helfen. Ich helfe gerne, wenn ich sehe, dass jemand versucht, sein Problem selbst zu lösen aber an bestimmten Stelle nicht weiterkommt und konkrete Fragen dazu stellt. Zum Beispiel könntest Du versuchen, soweit es geht, dieses Programm mit eigenen Worten hier zu erklären. Fehler und Lücken kann man dann hier im Rahmen einer Diskussion korrigieren bzw auffüllen. Wenn das bei Dir nicht drin ist, bist Du hier falsch. Schnapp Dir ein schlaues C++ Buch und lerne.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2171098</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2171098</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sun, 22 Jan 2012 13:27:38 GMT</pubDate></item><item><title><![CDATA[Reply to Programm erklären on Sun, 22 Jan 2012 13:45:53 GMT]]></title><description><![CDATA[<p>Sieht für mich aus wie eine verkettete Liste, aber eigentlich recht &quot;primitiv&quot; gelöst. Heutzutage macht man sowas doch mit Klassen :o<br />
Mir scheint, als hättest du das Programm nicht wirklich selbst geschrieben, denn wenn man im Team zusammenarbeitet, sollte schon jeder, der mitmacht das Thema auch vollständig verstehen.<br />
Btw... Das ist eine verkettete Liste, die in der main-Funktion 4 Knoten erstellt und die aneinander hängt. Jeder, der was von C++ versteht, sollte jetzt auf den Rest schließen können <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/2171108</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2171108</guid><dc:creator><![CDATA[Ich bin Matrix...]]></dc:creator><pubDate>Sun, 22 Jan 2012 13:45:53 GMT</pubDate></item><item><title><![CDATA[Reply to Programm erklären on Sun, 22 Jan 2012 16:42:44 GMT]]></title><description><![CDATA[<p>chestor00 schrieb:</p>
<blockquote>
<p>Ich habe es mit jemanden zusammen gemacht, aber verstehe es nicht</p>
</blockquote>
<p>Wie geht das denn?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2171169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2171169</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sun, 22 Jan 2012 16:42:44 GMT</pubDate></item><item><title><![CDATA[Reply to Programm erklären on Sun, 22 Jan 2012 16:50:13 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<p>chestor00 schrieb:</p>
<blockquote>
<p>Ich habe es mit jemanden zusammen gemacht, aber verstehe es nicht</p>
</blockquote>
<p>Wie geht das denn?</p>
</blockquote>
<p>Hast du in der Schule nie Gruppenarbeit gemacht? Unsere Lehrer waren da ganz heiß drauf. Und ich habe auch artig gelernt, dass dann der Beste (meistens ich) alles macht und der Rest die Note teilt. Und daraus Konsequenzen gezogen. Ich bin mir jedoch nicht ganz sicher, ob das die Lektion war, die vermittelt werden <em>sollte</em>. <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/2171171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2171171</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 22 Jan 2012 16:50:13 GMT</pubDate></item><item><title><![CDATA[Reply to Programm erklären on Sun, 22 Jan 2012 18:48:36 GMT]]></title><description><![CDATA[<p>@manni66: Ich hab den leichten Teil gemacht (bis Zeile 20) und er den schwierigen.</p>
<p>Ich hab schon gegooglet nach verketteten listen, leider gibts da keine guten Erklärungen speziell auf mein Programm. Allgemein verstehe ich auch die verkettete liste nicht, auch wenn ich mir das durchlese.<br />
Leute, die C++ können und mir helfen, kenn ich fast keine.</p>
<p>Ich schreib ma auf, was ich verstanden hab und was nicht:<br />
Den Teil mit Struct Event und Void Ausgabe (event ev) verstehe ich komplett (bis zeile 20).</p>
<p>(1) Das mit VoidAusgabeListe und den Knoten verstehe ich wirklich 0.<br />
Das würd ich gerne verstehen, was da passiert und wieso</p>
<p>(2) Was macht dieses ,,Next-&gt;'' da? (3) Was macht das ,,neu-&gt;'' da? Wieso?</p>
<p>(4) oder den Teil mit Event * neuesEvent.<br />
(5) Event* neu = new Event; &lt;-- Was passiert hier? Wieso?</p>
<p>(6) neu-&gt;Sitzplätze = sitzplätze; &lt;-- Was macht der hier da?</p>
<p>(7) Event *StartZeiger = NULL, *EndZeiger = NULL, *AktuellerZeiger; &lt;-- Wieso??</p>
<p>7 Fragen über fragen,...</p>
<p>Das mit AusgabeListe(Starzeiger) (3. letzte zeile) verstehe ich glaube ich, der fängt mit den Startzeiger an und macht das solange, bis diese verkettete Liste nacheinander alles ausgegeben hat. oder????</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2171202</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2171202</guid><dc:creator><![CDATA[chestor00]]></dc:creator><pubDate>Sun, 22 Jan 2012 18:48:36 GMT</pubDate></item><item><title><![CDATA[Reply to Programm erklären on Sun, 22 Jan 2012 19:02:18 GMT]]></title><description><![CDATA[<p>Hast du Pointer und/oder dynamische Speicherverwaltung denn verstanden? Falls nicht: Google.</p>
<pre><code class="language-cpp">struct MyStruct
{
  MyStruct* next; // Jedes Objekt vom Typ &quot;MyStruct&quot; enthält jetzt einen Zeiger auf MyStruct.
};

int main()
{
  MyStruct* p = new MyStruct;
  p-&gt;next = new MyStruct;
  p-&gt;next-&gt;next = new MyStruct;
  p-&gt;next-&gt;next-&gt;next = new Mystruct;
}
</code></pre>
<p>Eine Liste funktioniert also so, dass du weißt wo das erste Element liegt, und jedes Element einen Zeiger auf das nächste Element hält. Damit man weiß, wo die Liste zu Ende ist, hält das letzte Element einen Nullzeiger. So kann man sich durch die gesamte Liste hangeln.</p>
<p>Und was heißt du hast den einfachen Teil gemacht? Das ist alles einfach, zumal du deinen Fragen nach zu urteilen überhaupt nichts verstanden hast. Das hat SeppJ schon ganz richtig beschrieben.</p>
<p>chestor00 schrieb:</p>
<blockquote>
<p>(6) neu-&gt;Sitzplätze = sitzplätze; &lt;-- Was macht der hier da?</p>
</blockquote>
<p>Ist die Frage ernst gemeint? Das ist eine Zuweisung. oO</p>
<p>Oder verstehst du einfach den Pfeil nicht? Der Pfeil ist eine gleichzeitige Dereferenzierung:</p>
<pre><code class="language-cpp">struct A
{
  A* next;
};

int main()
{
  A* a = new A;

  a-&gt;next = 0;
  // Äquivalent zu:
  (*a).next = 0;
}
</code></pre>
<p>PS: Da ihr ja scheinbar einfach mal ganz galant auf ein delete verzichtet habt mache ich das auch mal so, Speicher wieder freigeben ist eh uncool.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2171209</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2171209</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sun, 22 Jan 2012 19:02:18 GMT</pubDate></item><item><title><![CDATA[Reply to Programm erklären on Sun, 22 Jan 2012 19:55:45 GMT]]></title><description><![CDATA[<p>chestor00, Dir fehlt <em>viel zu viel</em> an Grundlage.<br />
Schnapp Dir ein schlaues C++ Buch und lerne!<br />
So hat das keinen Zweck.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2171221</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2171221</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sun, 22 Jan 2012 19:55:45 GMT</pubDate></item><item><title><![CDATA[Reply to Programm erklären on Mon, 23 Jan 2012 09:23:23 GMT]]></title><description><![CDATA[<p>Jungs, lasst doch den armen Kerl nicht einfach im Regen stehen. Gebt doch vielmehr eine &quot;gescheite&quot; erklärung.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/27794">@chestor00</a>: Ich hoffe meine Kommentare können dir die Sache ein wenig erhellen. Frag sonst einfach noch einmal nach! Vielleicht kann auch noch jemand anders die Sache noch besser erklären.</p>
<p>Willi ...</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

struct Event
{
    string Name;
    int Sitzplätze;
    int leereSitzplätze;
    Event *next;	// das sternchen heisst: Zeiger
					// &quot;next&quot; ist ein Zeiger auf eine &quot;struct Event&quot; 
};

void ausgabe(Event ev)
{
    cout &lt;&lt; &quot;Event: &quot; &lt;&lt; ev.Name &lt;&lt; endl &lt;&lt; &quot;Sitzplaetze: &quot; &lt;&lt; ev.Sitzplätze &lt;&lt; endl
    &lt;&lt; &quot;Leere Sitzplaetze: &quot; &lt;&lt; ev.leereSitzplätze &lt;&lt; endl &lt;&lt; endl;
}

void ausgabeListe(Event* startKnoten)		// &quot;startKnoten&quot; ist auch ein Zeiger auf &quot;struct Event&quot;
{
    Event* aktuellerKnoten = startKnoten;	// hier wird eine neue Variable mit namen &quot;aktuellerKnoten&quot; vereinbart
											// sie ist vom Typ &quot;Zeiger auf struct Event&quot;

 while (aktuellerKnoten!=0)		// das ist eine Programm-Schleife
								// solange wie &quot;aktuellerKnoten&quot; nicht gleich null ist wird der folgende
								// Block ausgeführt
    {
        ausgabe((*aktuellerKnoten));	// Das sternchen hier ist eine dereferenzierung. Die Funktion ausgabe()
										// verlangt eine &quot;struct Event&quot;, mit dem sternchen bekommen wir vom &quot;Zeiger
										// auf struct Event&quot; die &quot;struct Event&quot;. 
										// du kannst das sternchen hier auch als &quot;inhalt von...&quot; lesen.

        aktuellerKnoten = aktuellerKnoten-&gt;next;	// hier wird die Variable &quot;aktuellerKnoten&quot; auf den nächsten Knoten
													// gesetzt. 
    }
}

Event* neuesEvent(string NameDesEventes,int sitzplätze, int leeresitzplätze)
{
    Event* neu = new Event;		// hier wird Speicher für eine neue &quot;struct Event&quot; angefordert.
								// (eine generelle Beschreibung kannst du hier finden: 
								// http://ladedu.com/cpp/kapitel3_dynamische_speicherverwaltung
								// &quot;neu&quot; ist ein Zeiger auf die neu angeforderte struktur.

	// in den folgenden drei linien wird die struktur mit inhalt gefüllt.
    neu-&gt;Name = NameDesEventes;				
    neu-&gt;leereSitzplätze=leeresitzplätze;
    neu-&gt;Sitzplätze = sitzplätze;

    return neu;	// die neue struktur zurückgeben.
}

int main()
{   
	// zuerst werden drei Variablen vereinbart: StartZeiger, EndZeiger und AktuellerZeiger. 
	// StartZeiger und EndZeiger werden sofort mit 0 beschrieben.
    Event *StartZeiger = NULL, *EndZeiger = NULL, *AktuellerZeiger;

	// die Funktion &quot;neuesEvent&quot; generiert eine neue &quot;struct Event&quot; und liefert einen Zeiger darauf.
	// diese neue struktur wird der Variable &quot;StartZeiger&quot; zugewiesen. 
    StartZeiger = neuesEvent(&quot;Romeo &amp; Julia [Tanzstueck]&quot;,1000,580);
    AktuellerZeiger = StartZeiger;	// damit zeigt &quot;AktuellerZeiger&quot; auf das Ende der Liste.

	// die Funktion &quot;neuesEvent&quot; generiert eine neue &quot;struct Event&quot; und liefert einen Zeiger darauf.
	// diese neue struktur wird der Variable &quot;AktuellerZeiger-&gt;next&quot; zugewiesen. Damit wird die
	// eigentliche verkettung durchgeführt.
    AktuellerZeiger-&gt;next = neuesEvent(&quot;Engel der Armen [Komoedie]&quot;,1000,450);
    AktuellerZeiger = AktuellerZeiger-&gt;next;	// damit zeigt &quot;AktuellerZeiger&quot; auf das Ende der Liste.

	// die Funktion &quot;neuesEvent&quot; generiert eine neue &quot;struct Event&quot; und liefert einen Zeiger darauf.
	// diese neue struktur wird der Variable &quot;AktuellerZeiger-&gt;next&quot; zugewiesen. Damit wird die
	// eigentliche verkettung durchgeführt.
    AktuellerZeiger-&gt;next = neuesEvent(&quot;Sandmann [Nachtstueck]&quot;,1000,690);
    AktuellerZeiger = AktuellerZeiger-&gt;next;	// damit zeigt &quot;AktuellerZeiger&quot; auf das Ende der Liste.

	// die Funktion &quot;neuesEvent&quot; generiert eine neue &quot;struct Event&quot; und liefert einen Zeiger darauf.
	// diese neue struktur wird der Variable &quot;AktuellerZeiger-&gt;next&quot; zugewiesen. Damit wird die
	// eigentliche verkettung durchgeführt.
    AktuellerZeiger-&gt;next = neuesEvent(&quot;Hoerbar [Kammerspiele] &quot;,1000,600);
    AktuellerZeiger = AktuellerZeiger-&gt;next;	// damit zeigt &quot;AktuellerZeiger&quot; auf das Ende der Liste.

	// Der Letzte Eintrag der Liste muss ein 0 bekommen! Das ist wichtig weil sonst die schleife oben 
	// in der funktion &quot;ausgabeListe()&quot; einfach weiterlaufen würde.
    AktuellerZeiger-&gt;next = EndZeiger;

    ausgabeListe(StartZeiger);

    system(&quot;pause&quot;);

    return 0;

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2171318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2171318</guid><dc:creator><![CDATA[Willi Burkhardt]]></dc:creator><pubDate>Mon, 23 Jan 2012 09:23:23 GMT</pubDate></item><item><title><![CDATA[Reply to Programm erklären on Mon, 23 Jan 2012 09:46:23 GMT]]></title><description><![CDATA[<p>Mal 2 kleine Tipps am Rande:</p>
<pre><code class="language-cpp">int Sitzplätze; 
    int leereSitzplätze;
</code></pre>
<p>Ihr solltet euch auf eine Konvention einigen (Stichworte zum googeln: Camel Case / Pascal Case), sowas geht in der beruflichen Praxis später mal gar nicht. Und Umlaute sollten in den Bezeichnern nicht verwendet werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2171335</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2171335</guid><dc:creator><![CDATA[TippAmRande]]></dc:creator><pubDate>Mon, 23 Jan 2012 09:46:23 GMT</pubDate></item><item><title><![CDATA[Reply to Programm erklären on Mon, 23 Jan 2012 18:45:02 GMT]]></title><description><![CDATA[<p>Ihr habt recht, mir haben einfach die Grundlagen gefehlt.</p>
<p>Ich habe mich stundenlang intensiv mit Zeigern beschäftigt und viel gegoogelt, und nun, wo ich das mit den Zeigern verstanden habe, verstehe ich jetzt auch das meiste von diesem Programm.<br />
Dieses Programm besteht ja fast nur davon.</p>
<p>@Willi Burkhardt: Dankeschön, dass du dir soviel mühe gemacht hast. <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>Auch an den Rest danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2171586</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2171586</guid><dc:creator><![CDATA[chestor00]]></dc:creator><pubDate>Mon, 23 Jan 2012 18:45:02 GMT</pubDate></item></channel></rss>