<?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[Stack Implementation]]></title><description><![CDATA[<p>Hallo,</p>
<p>es gab hier schonmal fast die gleiche Aufgabe, dabei war die Problemstellung jedoch eine völlig andere.</p>
<p>Die exakte Aufgabenstellung gibt es hier... <a href="http://pastebin.com/572ErrdN" rel="nofollow">http://pastebin.com/572ErrdN</a></p>
<p>Ich kann den Vorgang in der main- Funktion nachvollziehen, verstehe auch den Zweck der Aufgabe. Ich finde einfach keinen logischen Gedanken der mir zu begreifen gibt wie ich die vorgegebenen Funktionen anwenden soll. Das heißt, ich weiß wo die Funktionsköpfe hingehören, aber ich kann den Unterbau der Funktionen nicht schreiben. Bei allem was ich aus meinem Buch soweit gelernt habe, bringt mich das hier nicht weiter...</p>
<p>Ich weiß jetzt zwar was push und pop bewirken soll, aber nicht wie ich es anwenden soll. Die Kapitel über struct und pointer hab ich ebenfalls verstanden, auch was LIFO ist. In meinem c++ Buch konnte ich verschiedene Begriffe auch nachlesen aber es reicht einfach nicht für diese Aufgabe... ich merk wie mir hier der Unterbau fehlt. Ich wär froh ich hätte eine Lösung die ich Stück für Stück nachgehen und verstehen kann.</p>
<p>Google benutze ich schon seit Stunden...ich finde hin und wieder ähnliche Bruchstücke, ich konnte diesen aber nichts abgewinnen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f611.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--expressionless_face"
      title="-_-"
      alt="😑"
    /></p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/328570/stack-implementation</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Jul 2026 12:42:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/328570.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 16 Oct 2014 18:42:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Stack Implementation on Thu, 16 Oct 2014 18:42:35 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>es gab hier schonmal fast die gleiche Aufgabe, dabei war die Problemstellung jedoch eine völlig andere.</p>
<p>Die exakte Aufgabenstellung gibt es hier... <a href="http://pastebin.com/572ErrdN" rel="nofollow">http://pastebin.com/572ErrdN</a></p>
<p>Ich kann den Vorgang in der main- Funktion nachvollziehen, verstehe auch den Zweck der Aufgabe. Ich finde einfach keinen logischen Gedanken der mir zu begreifen gibt wie ich die vorgegebenen Funktionen anwenden soll. Das heißt, ich weiß wo die Funktionsköpfe hingehören, aber ich kann den Unterbau der Funktionen nicht schreiben. Bei allem was ich aus meinem Buch soweit gelernt habe, bringt mich das hier nicht weiter...</p>
<p>Ich weiß jetzt zwar was push und pop bewirken soll, aber nicht wie ich es anwenden soll. Die Kapitel über struct und pointer hab ich ebenfalls verstanden, auch was LIFO ist. In meinem c++ Buch konnte ich verschiedene Begriffe auch nachlesen aber es reicht einfach nicht für diese Aufgabe... ich merk wie mir hier der Unterbau fehlt. Ich wär froh ich hätte eine Lösung die ich Stück für Stück nachgehen und verstehen kann.</p>
<p>Google benutze ich schon seit Stunden...ich finde hin und wieder ähnliche Bruchstücke, ich konnte diesen aber nichts abgewinnen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f611.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--expressionless_face"
      title="-_-"
      alt="😑"
    /></p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422528</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422528</guid><dc:creator><![CDATA[plantplant]]></dc:creator><pubDate>Thu, 16 Oct 2014 18:42:35 GMT</pubDate></item><item><title><![CDATA[Reply to Stack Implementation on Thu, 16 Oct 2014 19:01:27 GMT]]></title><description><![CDATA[<p>plantplant schrieb:</p>
<blockquote>
<p>Ich finde einfach keinen logischen Gedanken der mir zu begreifen gibt wie ich die vorgegebenen Funktionen anwenden soll.</p>
</blockquote>
<p>Du meinst, wie du die Funktionen implementieren sollst?</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /></p>
<blockquote>
<p>Das heißt, ich weiß wo die Funktionsköpfe hingehören, aber ich kann den Unterbau der Funktionen nicht schreiben.</p>
</blockquote>
<blockquote>
<p>Ich weiß jetzt zwar was push und pop bewirken soll, aber nicht wie ich es anwenden soll.</p>
</blockquote>
<p>Schon wieder anwenden. Also doch kein Fehler. Was genau willst du eigentlich wissen? Ich ignoriere am besten, was du fragst und gehe davon aus, dass du einfach nur wissen willst, wie du die Aufgabe lösen sollst...</p>
<blockquote>
<p>Die Kapitel über struct und pointer hab ich ebenfalls verstanden, auch was LIFO ist.</p>
</blockquote>
<p>Das ist gut.</p>
<p>Fangen wir mal klein an. Du weißt was ein Stack macht, und du hast eine struct-Definition für deinen Stack vorgegeben. Was meinst du, ist die Bedeutung der einzelnen Datenfelder? (Tipp: Das steht in den Kommentaren.) Welchen Inhalt müssten sie haben, für einen leeren Stack? (Damit kannst du dann schon create_stack und isEmpty implementieren. BTW die Namenskonvention ist bekloppt, entweder auch is_empty oder auch createStack, aber dafür kannst du nichts.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422530</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422530</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 16 Oct 2014 19:01:27 GMT</pubDate></item><item><title><![CDATA[Reply to Stack Implementation on Thu, 16 Oct 2014 19:01:30 GMT]]></title><description><![CDATA[<p>Etwas mehr wirst du wohl schon liefern müssen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422531</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422531</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Thu, 16 Oct 2014 19:01:30 GMT</pubDate></item><item><title><![CDATA[Reply to Stack Implementation on Thu, 16 Oct 2014 19:13:57 GMT]]></title><description><![CDATA[<p>Ich weiß nicht wie ich</p>
<p>Stack *create_stack(unsigned int);</p>
<p>void push(Stack *, char);</p>
<p>char pop(Stack *);</p>
<p>int isEmpty(Stack *);</p>
<p>void destroy_stack(Stack *);</p>
<p>vervollständigen soll. Außerdem hab ich den Zeiger so noch nicht gesehn. Was soll Stack *create_stack(unsigned int); bedeuten? Ein Zeiger Namens create_stack zeigt auf Stack?</p>
<p>Wie lese ich außerdem aus der Parameterklammer (Stack *)? Also was bedeutet das?</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422535</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422535</guid><dc:creator><![CDATA[plantplant]]></dc:creator><pubDate>Thu, 16 Oct 2014 19:13:57 GMT</pubDate></item><item><title><![CDATA[Reply to Stack Implementation on Thu, 16 Oct 2014 19:36:03 GMT]]></title><description><![CDATA[<p>plantplant schrieb:</p>
<blockquote>
<p>Ich weiß nicht wie ich</p>
<p>Stack *create_stack(unsigned int);</p>
<p>void push(Stack *, char);</p>
<p>char pop(Stack *);</p>
<p>int isEmpty(Stack *);</p>
<p>void destroy_stack(Stack *);</p>
<p>vervollständigen soll.</p>
</blockquote>
<p>Schon klar.</p>
<blockquote>
<p>Außerdem hab ich den Zeiger so noch nicht gesehn. Was soll Stack *create_stack(unsigned int); bedeuten?</p>
</blockquote>
<p>create_stack ist eine Funktion mit Rückgabetyp &quot;Zeiger auf Stack&quot;.</p>
<blockquote>
<p>Ein Zeiger Namens create_stack zeigt auf Stack?</p>
</blockquote>
<p>Das wäre <code>Stack *create_stack;</code> , aber da steht ja noch eine Parameterliste, die bewirkt, dass es eine Funktion wird.</p>
<blockquote>
<p>Wie lese ich außerdem aus der Parameterklammer (Stack *)? Also was bedeutet das?</p>
</blockquote>
<p>Das ist dasselbe wie <code>char pop(Stack *s);</code> , der Name des Parameters wurde einfach weggelassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422540</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 16 Oct 2014 19:36:03 GMT</pubDate></item><item><title><![CDATA[Reply to Stack Implementation on Thu, 16 Oct 2014 19:53:47 GMT]]></title><description><![CDATA[<p>Danke, dann wär da schonmal Licht im Dunkeln...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422542</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422542</guid><dc:creator><![CDATA[plantplant]]></dc:creator><pubDate>Thu, 16 Oct 2014 19:53:47 GMT</pubDate></item><item><title><![CDATA[Reply to Stack Implementation on Thu, 16 Oct 2014 20:03:44 GMT]]></title><description><![CDATA[<p>Ich weiß trotzdem nicht wie ich implementieren soll</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422546</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422546</guid><dc:creator><![CDATA[plantplant]]></dc:creator><pubDate>Thu, 16 Oct 2014 20:03:44 GMT</pubDate></item><item><title><![CDATA[Reply to Stack Implementation on Thu, 16 Oct 2014 20:04:35 GMT]]></title><description><![CDATA[<p>Siehe mein erstes Posting.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422547</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422547</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 16 Oct 2014 20:04:35 GMT</pubDate></item><item><title><![CDATA[Reply to Stack Implementation on Thu, 16 Oct 2014 20:09:07 GMT]]></title><description><![CDATA[<p>Hab ich ja gelesen aber nur weil eine Ahnung hab was ich machen muss, weiß ich noch nicht wie ich es machen muss &amp; welche Operatoren hier angebracht sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422548</guid><dc:creator><![CDATA[plantplant]]></dc:creator><pubDate>Thu, 16 Oct 2014 20:09:07 GMT</pubDate></item><item><title><![CDATA[Reply to Stack Implementation on Thu, 16 Oct 2014 20:13:59 GMT]]></title><description><![CDATA[<p>Du solltest deine Überlegungen zu den Fragen hier posten. Dann gehts weiter.</p>
<p>Sorry, aber falls es bisher irgendwie noch unklar geblieben ist: Ich werde dir die Lösung nicht auf dem Silbertablett präsentieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422549</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422549</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 16 Oct 2014 20:13:59 GMT</pubDate></item><item><title><![CDATA[Reply to Stack Implementation on Thu, 16 Oct 2014 20:25:37 GMT]]></title><description><![CDATA[<blockquote>
<p>Ich weiß trotzdem nicht wie ich implementieren soll</p>
</blockquote>
<p>Kleine Hilfe:</p>
<pre><code>Stack* create_stack(unsigned int); {
neues element von Stack erzeugen. 
}
</code></pre>
<pre><code>void push(Stack *, char);{
Bei Stack* ein Stack-Elemement übergeben. 
Das Char am Ende anhängen. 
depth um 1 ehöhen
}
</code></pre>
<pre><code>char pop(Stack *); {
das char an stelle &quot;depth&quot; auslesen. 
Depth um 1 verringern. 
char zurück geben
}
</code></pre>
<pre><code>int isEmpty(Stack *);{
könnte (vermutlich) depth zurück geben. 
}
</code></pre>
<pre><code>void destroy_stack(Stack *);{
Element wieder auflösen. 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2422550</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422550</guid><dc:creator><![CDATA[n3wbie]]></dc:creator><pubDate>Thu, 16 Oct 2014 20:25:37 GMT</pubDate></item><item><title><![CDATA[Reply to Stack Implementation on Thu, 16 Oct 2014 20:38:40 GMT]]></title><description><![CDATA[<p>Total kontraproduktiv. <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=":/"
      alt="😕"
    /> Deine &quot;Hilfe&quot; ignoriert zudem die vorgegebene Bedeutung der struct-Member depth und top. Genau deshalb hab ich den OP doch gebeten, sich über diese Bedeutung erstmal klar zu werden ... wie sieht ein typisches Stack-Objekt eigentlich aus? Danach ergibt sich die Implementierung schon fast zwangsläufig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422552</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422552</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 16 Oct 2014 20:38:40 GMT</pubDate></item><item><title><![CDATA[Reply to Stack Implementation on Thu, 16 Oct 2014 20:47:01 GMT]]></title><description><![CDATA[<p>Stack *s; (Der Zeiger s zeigt auf die Struktur Stack ?)<br />
s = create_stack(3); (Der Zeiger s zeigt auf die Funktion create_stack mit 3 Rückgabewerten?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422554</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422554</guid><dc:creator><![CDATA[plantplant]]></dc:creator><pubDate>Thu, 16 Oct 2014 20:47:01 GMT</pubDate></item><item><title><![CDATA[Reply to Stack Implementation on Thu, 16 Oct 2014 20:57:09 GMT]]></title><description><![CDATA[<p>Jop. Meinte Top statt Depth.<br />
Wenn ich an seiner / ihrer Stelle wäre, würde es mir helfen. Also schreib ich auch.<br />
Und darauf, dass ich mit &quot;top&quot; bestimme(n könnte) wie voll der Stack ist statt mit Depth, hätte ich dann schon von selbst gemerkt.</p>
<p>EDIT</p>
<blockquote>
<p>Stack *s; (Der Zeiger s zeigt auf die Struktur Stack ?)<br />
s = create_stack(3); (Der Zeiger s zeigt auf die Funktion create_stack mit 3 Rückgabewerten?)</p>
</blockquote>
<p>Stack *s ist eine Variable die auf ein Stack-Objekt zeigen könnte.</p>
<p>create_stack(3); gibt ein Stack-Objekt zurück. *s zeigt auf dieses.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422555</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422555</guid><dc:creator><![CDATA[n3wbie]]></dc:creator><pubDate>Thu, 16 Oct 2014 20:57:09 GMT</pubDate></item><item><title><![CDATA[Reply to Stack Implementation on Thu, 16 Oct 2014 21:02:07 GMT]]></title><description><![CDATA[<p>danke für die hilfe aber mir fehlt es eher an werkzeug.</p>
<p>neues element von stack erzeugen? eine instanz von Stack?</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422557</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422557</guid><dc:creator><![CDATA[plantplant]]></dc:creator><pubDate>Thu, 16 Oct 2014 21:02:07 GMT</pubDate></item><item><title><![CDATA[Reply to Stack Implementation on Thu, 16 Oct 2014 21:03:04 GMT]]></title><description><![CDATA[<p>n3wbie schrieb:</p>
<blockquote>
<p>Jop. Meinte Top statt Depth.</p>
</blockquote>
<p>Wenn es so einfach wäre, hätte ich das schon gesehen und das auch geschrieben. Ist es aber nicht, z.B. soll top auf ein freies Feld zeigen. Bitte bedenke auch, dass der OP auf dem Level auch triviale Fehler in der Hilfe nicht immer selbst erkennen oder gar korrigieren kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422559</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422559</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 16 Oct 2014 21:03:04 GMT</pubDate></item><item><title><![CDATA[Reply to Stack Implementation on Thu, 16 Oct 2014 22:25:36 GMT]]></title><description><![CDATA[<p>plantplant schrieb:</p>
<blockquote>
<p>neues element von stack erzeugen? eine instanz von Stack?</p>
</blockquote>
<p>Bitte benutze ganze Sätze. Ich weiß nicht, was du wissen möchtest. Kennst du die Begriffe der objektorientierten Programmierung nicht? Oder weißt du nicht, wie du diese Konzepte in C<sup>*</sup> umsetzen kannst? Oder ganz was anderes?</p>
<p><sup>*</sup>: Falls du dir dessen nicht bewusst bist: Auch wenn du gerade im C++-Forum fragst, so ist dein Code doch typisches C, mit einer einzigen (unnötigen) Zeile C++. Sogenanntes &quot;C mit cout&quot;. In C++ würde man Objektorientierung ganz anders umsetzen, da sie direkt von der Sprache her unterstützt wird und du dir das ganze create, destroy und Pointergefummel sparen kannst (oder man nimmt den Stack aus der Standardbibliothek, aber ich kann durchaus nachvollziehen, dass man das vielleicht einmal selber programmieren sollte. Aber wie gesagt, in C++ ginge das ganz anders).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422568</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422568</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 16 Oct 2014 22:25:36 GMT</pubDate></item><item><title><![CDATA[Reply to Stack Implementation on Fri, 17 Oct 2014 03:19:52 GMT]]></title><description><![CDATA[<p>plantplant schrieb:</p>
<blockquote>
<p>danke für die hilfe aber mir fehlt es eher an werkzeug.</p>
<p>neues element von stack erzeugen? eine instanz von Stack?</p>
<p>mfg</p>
</blockquote>
<p>Weisst du wie man in C (bzw. C++ - je nachdem was es denn werden soll) Speicher anfordert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422584</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 17 Oct 2014 03:19:52 GMT</pubDate></item><item><title><![CDATA[Reply to Stack Implementation on Fri, 17 Oct 2014 18:04:15 GMT]]></title><description><![CDATA[<p>Ja bei c++ mit &quot;new&quot;, wobei ich dann doch auf den heap zugreife, in der Aufgabe es doch aber um den stack geht?!</p>
<p>Die Vorlesung behandelt c++, ich muss eben versuchen die Aufgabe so c++-typisch wie möglich zu lösen ohne das vorgegeben zu verändern. Ich bin zum einen von diesem Zeigergefummel wie du schon gesagt hast, durcheinander, und zum anderen weiß ich nicht mit welchen Operatoren ich hier ansetzen soll.</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422693</guid><dc:creator><![CDATA[plantplant]]></dc:creator><pubDate>Fri, 17 Oct 2014 18:04:15 GMT</pubDate></item><item><title><![CDATA[Reply to Stack Implementation on Fri, 17 Oct 2014 18:11:00 GMT]]></title><description><![CDATA[<p>plantplant schrieb:</p>
<blockquote>
<p>Ja bei c++ mit &quot;new&quot;, wobei ich dann doch auf den heap zugreife, in der Aufgabe es doch aber um den stack geht?!</p>
</blockquote>
<p>Du bringst da ein paar Sachen durcheinander.<br />
<a href="http://en.wikipedia.org/wiki/Heap_%28data_structure%29" rel="nofollow">Heap</a><br />
<a href="http://en.wikipedia.org/wiki/Heap_%28programming%29" rel="nofollow">Heap</a><br />
<a href="http://en.wikipedia.org/wiki/Stack_%28abstract_data_type%29" rel="nofollow">Stack</a><br />
<a href="http://en.wikipedia.org/wiki/Call_stack" rel="nofollow">Stack</a><br />
Du sollst hier die Datenstruktur &quot;Stack&quot; implementieren.</p>
<p>In C++ benutzt man übrigens so gut wie nie new, zumindest keines, das nicht sehr gut versteckt ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422695</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422695</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 17 Oct 2014 18:11:00 GMT</pubDate></item><item><title><![CDATA[Reply to Stack Implementation on Fri, 17 Oct 2014 20:22:01 GMT]]></title><description><![CDATA[<p>Ich dreh mich im Kreis...</p>
<p>Ich kann doch struct wie eine Klasse behandeln oder?</p>
<p>und bräuchte ich nicht 3 dateien? eine main.cpp eine stack.h und eine stack.cpp. Ich bin mir gerade doch unsicher wo ich die funktionen überhaupt definieren soll...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422707</guid><dc:creator><![CDATA[plantplant]]></dc:creator><pubDate>Fri, 17 Oct 2014 20:22:01 GMT</pubDate></item><item><title><![CDATA[Reply to Stack Implementation on Fri, 17 Oct 2014 21:37:13 GMT]]></title><description><![CDATA[<pre><code>#include &lt;iostream&gt;

using namespace std;

struct Person {
  int age;
};

Person* create_person1(int age);
Person* create_person2(int age);
Person create_person3(int age);

int main() {
	struct Person *emil = create_person1(15);
	struct Person *paul = create_person2(16);
	struct Person lisa = create_person3(17);

	cout&lt;&lt;&quot;Emils Alter: &quot;;
	cout&lt;&lt;emil-&gt;age&lt;&lt;endl;
	cout&lt;&lt;&quot;Pauls Alter: &quot;;
	cout&lt;&lt;(*paul).age&lt;&lt;endl;
	cout&lt;&lt;&quot;Lisas Alter: &quot;;
	cout&lt;&lt;lisa.age&lt;&lt;endl;

	return 0;
}

struct Person* create_person1(int age) {
	struct Person *newPerson;
	newPerson-&gt;age = 15;

	return newPerson;
}

struct Person* create_person2(int age) {
	struct Person *newPerson;
	(*newPerson).age = 15;

	return newPerson;
}
struct Person create_person3(int age) {
	struct Person newPerson;
	newPerson.age = 15;

	return newPerson;
}
</code></pre>
<p>5 min gegoogled. 3 Möglichkeiten gefunden ein Element von Struct zu erzeugen.<br />
Der Code ist nicht getestet und da ich selbst grade erst mit C++ anfange wird er vermutlich auch nicht laufen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /><br />
Aber so in etwa wird es funktionieren.</p>
<p>Und lass das alles erstmal in einer Datei. Auslagern kannst du später immer noch.</p>
<p>Scheint auch C mit cout zu sein. Kann ich leider noch nicht so ganz beurteilen <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/2422717</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422717</guid><dc:creator><![CDATA[n3wbie]]></dc:creator><pubDate>Fri, 17 Oct 2014 21:37:13 GMT</pubDate></item><item><title><![CDATA[Reply to Stack Implementation on Fri, 17 Oct 2014 21:50:42 GMT]]></title><description><![CDATA[<p>Was für ein Scheiß...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422719</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422719</guid><dc:creator><![CDATA[Mechanics]]></dc:creator><pubDate>Fri, 17 Oct 2014 21:50:42 GMT</pubDate></item><item><title><![CDATA[Reply to Stack Implementation on Fri, 17 Oct 2014 21:56:40 GMT]]></title><description><![CDATA[<p>n3wbie, es ist ja sehr löblich, dass du als Anfänger auch selber über Fragen nachdenkst. Aber wenn du helfen willst, dann sei dir bitte halbwegs sicher, ob deine Antwort auch stimmt. Wenn du selber sagst, dass du dich nicht auskennst und du nicht einmal den Code getestet hast, dann ist deine Antwort sehr wahrscheinlich nicht richtig. In der Tat ist genau das passiert: Alle drei von deinen Versionen gehen entweder voll am Thema vorbei oder sind schlichtweg falsch. Und zwar richtig schlimm falsch, nicht bloß schlecht.</p>
<p>Ich muss leider sagen, dass dies bei vielen deiner Antworten der Fall ist, nicht nur in diesem Thread.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422720</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422720</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 17 Oct 2014 21:56:40 GMT</pubDate></item><item><title><![CDATA[Reply to Stack Implementation on Fri, 17 Oct 2014 22:13:52 GMT]]></title><description><![CDATA[<blockquote>
<p>Wenn du selber sagst, dass du dich nicht auskennst und du nicht einmal den Code getestet hast, dann ist deine Antwort sehr wahrscheinlich nicht richtig.</p>
</blockquote>
<p>WTF. MinGW geladen, compiliert und läuft. Keine Fehler, keine Warnung.<br />
Ja, das macht es nicht unbedingt richtig. Und es ist auch nicht als Lösung gedacht gewesen. Sondern als bsp. dafür wie schnell man zeigen kann, dass man an Eigenleistung interessiert ist. Und ich muss sagen, so beschissen das auch aussehen mag, ich sehe es lieber als: geht alles nicht, macht ihr mal.</p>
<blockquote>
<p>Und zwar richtig schlimm falsch, nicht bloß schlecht.</p>
</blockquote>
<p>Prima, vielleicht schreibst du besser wie es richtig geht. Ich will es ja selbst lernen.<br />
Und ohne dich angreifen zu wollen, in diesem Thema ist absolut gar nichts produktives, was den TO auch nur ein bisschen auf die richtige Spur bringt.</p>
<blockquote>
<p>Ich muss leider sagen, dass dies bei vielen deiner Antworten der Fall ist, nicht nur in diesem Thread.</p>
</blockquote>
<p>Auch das würde ich zu gerne sehen. Bei den 3 Fachbezogenen Antworten die ich gegeben habe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422727</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422727</guid><dc:creator><![CDATA[n3wbie]]></dc:creator><pubDate>Fri, 17 Oct 2014 22:13:52 GMT</pubDate></item><item><title><![CDATA[Reply to Stack Implementation on Fri, 17 Oct 2014 22:52:38 GMT]]></title><description><![CDATA[<p>n3wbie schrieb:</p>
<blockquote>
<p>....</p>
</blockquote>
<p>Das sind halt so etwas von Anfängerfehlern, da lohnt es sich kaum zu antworten. Wenn man jeden Stuss, den jemand schreibt im Details korrigiert, dann kommt man nie zu irgendwas produktivem. Außerdem hast du eigentlich auf jede deiner falschen Antworten schon Kontra bekommen, du hast dich bloß hinterher versucht mit fadenscheinigen Argumenten rauszureden. Darauf hat dann bloß keiner mehr geantwortet, weil es sich nicht lohnt, deine Ausreden auch noch mal zu widerlegen. Aber schön, ausnahmsweise schreib ich mal was zu allen deinen fachlichen Beiträgen. Aber sag hinterher nicht, ich würde dich absichtlich runtermachen. Wenn du um eine Liste deiner Fehler bettelst, dann bekommst du eben auch eine:</p>
<blockquote>
<p>WTF. MinGW geladen, compiliert und läuft. Keine Fehler, keine Warnung.</p>
</blockquote>
<p>Dann kannst du deinen Compiler nicht benutzen. MinGW basiert auf GCC. GCC gibt folgende Warnungen, wenn man ihn korrekt nutzt:</p>
<pre><code>test.cc:28:16: warning: unused parameter ‘age’ [-Wunused-parameter]
 struct Person* create_person1(int age) {
                ^
test.cc:35:16: warning: unused parameter ‘age’ [-Wunused-parameter]
 struct Person* create_person2(int age) {
                ^
test.cc:41:15: warning: unused parameter ‘age’ [-Wunused-parameter]
 struct Person create_person3(int age) {
               ^
test.cc: In function ‘Person* create_person1(int)’:
test.cc:30:24: warning: ‘newPerson’ is used uninitialized in this function [-Wuninitialized]
     newPerson-&gt;age = 15;
                        ^
test.cc: In function ‘Person* create_person2(int)’:
test.cc:37:26: warning: ‘newPerson’ is used uninitialized in this function [-Wuninitialized]
     (*newPerson).age = 15;
                          ^
</code></pre>
<p>Das Resultat mal mit valgrind ausgeführt:</p>
<pre><code>==13823== Memcheck, a memory error detector
==13823== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==13823== Using Valgrind-3.10.0.SVN and LibVEX; rerun with -h for copyright info
==13823== Command: ./a.out
==13823== 
==13823== Use of uninitialised value of size 8
==13823==    at 0x400967: create_person1(int) (test.cc:30)
==13823==    by 0x4008AE: main (test.cc:14)
==13823== 
==13823== 
==13823== Process terminating with default action of signal 11 (SIGSEGV)
==13823==  Bad permissions for mapped region at address 0x400A3D
==13823==    at 0x400967: create_person1(int) (test.cc:30)
==13823==    by 0x4008AE: main (test.cc:14)
==13823== 
==13823== FILE DESCRIPTORS: 3 open at exit.
==13823== Open file descriptor 2: /dev/pts/66
==13823==    &lt;inherited from parent&gt;
==13823== 
==13823== Open file descriptor 1: /dev/pts/66
==13823==    &lt;inherited from parent&gt;
==13823== 
==13823== Open file descriptor 0: /dev/pts/66
==13823==    &lt;inherited from parent&gt;
==13823== 
==13823== 
==13823== HEAP SUMMARY:
==13823==     in use at exit: 0 bytes in 0 blocks
==13823==   total heap usage: 0 allocs, 0 frees, 0 bytes allocated
==13823== 
==13823== All heap blocks were freed -- no leaks are possible
==13823== 
==13823== For counts of detected and suppressed errors, rerun with: -v
==13823== Use --track-origins=yes to see where uninitialised values come from
==13823== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
Segmentation fault (core dumped)
</code></pre>
<p>Ups, Segfault. Tja, war wohl doch nicht richtig.</p>
<p>Die Fehler sind absolute Anfängerfehler:</p>
<pre><code>struct Person *newPerson;
    newPerson-&gt;age = 15;
</code></pre>
<p>newPerson zeigt auf nix. Zeiger nicht verstanden. C++-Objektmodell nicht verstanden. Wozu überhaupt ein Zeiger? Du hast nicht verstanden, was die Funktion machen soll, noch wie Zeiger und Objekte funktionieren.</p>
<p>create_person2: Gleiche Fehler wie bei Version 1.</p>
<pre><code>struct Person create_person3(int age) {
    struct Person newPerson;
    newPerson.age = 15;

    return newPerson;
}
</code></pre>
<p>Du hast nicht verstanden, wowum es hier überhaupt geht. Die Funktion ist zwar funktional richtig, aber trägt nicht dazu bei, dem Fragesteller beizubringen, wie Objektorientierung in C funktioniert. So wie hier geht das nämlich nicht (ich schreibe jetzt aber keinen Aufsatz, wie es richtig ginge).</p>
<p>Dann noch 3 weitere falsche Antworten von dir:<br />
1. <a href="http://www.c-plusplus.net/forum/p2422550#2422550" rel="nofollow">http://www.c-plusplus.net/forum/p2422550#2422550</a><br />
Thema nicht verstanden. Siehe Bashars darauf folgenden Kommentar.</p>
<p>2. <a href="http://www.c-plusplus.net/forum/p2422228#2422228" rel="nofollow">http://www.c-plusplus.net/forum/p2422228#2422228</a><br />
Thema verfehlt oder nicht verstanden. Siehe Bashars darauf folgenden Kommentar.</p>
<p>3. <a href="http://www.c-plusplus.net/forum/p2422683#2422683" rel="nofollow">http://www.c-plusplus.net/forum/p2422683#2422683</a><br />
Thema nicht verstanden. Siehe Skym0sh0s darauf folgenden Kommentar. Du willst Speicherverwaltung eines Betriebssystems erklären und kommst mit einer Erklärung zu einem 16-Bit OS, ohne virtuellen Speicher? Dabei ist doch sogar das Hauptproblem des Threaderstellers, dass er virtuellen Speicher nicht verstanden hat.</p>
<p>Drei Mal eine total kontraproduktive Hilfe, weil du das Thema selbst nicht verstanden hast, noch begriffen hast was überhaupt das Problem der Threadersteller ist.</p>
<p>Und hier noch deine fadenscheinigen Ausreden zum jeweiligen Thema:<br />
1. <a href="http://www.c-plusplus.net/forum/p2422555#2422555" rel="nofollow">http://www.c-plusplus.net/forum/p2422555#2422555</a><br />
Du hast nicht einmal verstanden, was an der Antwort falsch war. Siehe Bashars darauf folgenden Kommentar. Du hast gar nicht verstanden, worum es in diesem Thread überhaupt geht oder wie die richtige Lösung auch nur im Ansatz aussieht.</p>
<p>2. <a href="http://www.c-plusplus.net/forum/p2422233#2422233" rel="nofollow">http://www.c-plusplus.net/forum/p2422233#2422233</a><br />
Noch einmal die gleiche Allgemeinfloskel, in anderen Worten. Immer noch am Thema vorbei. Deine Begründung, warum es nicht am Thema vorbei wäre, ist eine Wiederholung dessen, was du schon geschrieben hast.</p>
<p>3. <a href="http://www.c-plusplus.net/forum/p2422706#2422706" rel="nofollow">http://www.c-plusplus.net/forum/p2422706#2422706</a><br />
Wenn du meinst, dass es reicht, virtuellen Speicher zu erwähnen, wieso tust du es dann nicht. Wieso erklärst du stattdessen, wie vor 30 Jahren der Stand der Technik war? Wenn du sagst, dass du Java-Entwickler wärst und eigentlich keine Ahnung vom Thema hast, wieso antwortest du dann?</p>
<p>Wie gesagt, mache ich das gerade nur, weil du darum gebettelt hast, sonst würde ich jemandem nicht so detailliert so viele Vorwürfe machen. Wie schon gesagt, ist es sehr löblich, als Anfänger mitzudenken, aber es ist was anderes, eine halbgare Antwort zu geben. Wenn du von Speicherverwaltung in modernen Betriebssystemen, Objektorientierung in C oder von den Feinheiten bei der Wahl einer Programmiersprache keine Ahnung hat, dann fragt man lieber selber was dazu, als dass man vollkommen veraltete Beschreibungen, ungetestete Eigenlösungen oder triviale Allgemeinfloskeln zum besten gibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422732</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 17 Oct 2014 22:52:38 GMT</pubDate></item></channel></rss>