<?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[Problem mit doppelt verketteter Liste]]></title><description><![CDATA[<p>Hallo liebe Gemeinde,</p>
<p>ich habe ein kleines Problem mit einer Aufgabe... Ziel ist es eine Adressverwaltung mit doppelt verketteter Liste zu realisieren.</p>
<p>Jedoch stürzt mir das Programm jedes mal ab, wenn ich versuche einen Namen zu speichern. Ich hänge den Quelltext mal an. Der Fehler passiert in der main() an der Stelle, an der der Name gespeichert werden soll.</p>
<p>Ich hoffe mir kann geholfen werden <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>
<p>Vielen Dank schonmal im Voraus!</p>
<p>Mit freundlichen Grüßen,<br />
cattweasel</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt;
using namespace std;

struct adresse
{
    struct adresse *links;
    struct adresse *rechts;

    string name;
};

struct adresse * neue_liste()
{
    struct adresse *temp = (struct adresse*) malloc(sizeof(struct adresse));

    temp-&gt;name;

    temp-&gt;rechts = temp;
    temp-&gt;links  = temp;

    return temp;
}

struct adresse * eintrag_einfuegen(struct adresse *list, string name)
{
    struct adresse *temp = (struct adresse *) malloc(sizeof(struct adresse));

    temp-&gt;name          = name;

    temp-&gt;links         = list;
    temp-&gt;rechts        = list-&gt;rechts;
    list-&gt;rechts        = temp;
    temp-&gt;rechts-&gt;links = temp;

    return temp;
}

struct adresse * eintrag_loeschen(struct adresse *list)
{
    list-&gt;rechts-&gt;links = list-&gt;links;
    list-&gt;links-&gt;rechts = list-&gt;rechts;

    return list-&gt;links;
}

struct adresse * eintrag_suchen(struct adresse *list, string name)
{
    struct adresse *head    = list;
    struct adresse *current = list;

    if (head-&gt;name == name)
    {
        return head;
    }

    while (head != (current-&gt;rechts))
    {
        if (current-&gt;name == name)
        {
            return current;
        }
    }

    return false;
}

struct adresse * eintrag_ausgeben(struct adresse *list, string name)
{
    struct adresse *current = eintrag_suchen(list, name);

    if (current != false)
    {
        cout &lt;&lt; current-&gt;name &lt;&lt; endl;
    }
    else
    {
        cout &lt;&lt; &quot;Der Eintrag konnte nicht gefunden werden.&quot; &lt;&lt; endl;
    }
}

struct adresse * eintraege_ausgeben(struct adresse *list)
{
    struct adresse *head    = list;
    struct adresse *current = list;

    cout &lt;&lt; head-&gt;name &lt;&lt; endl;

    while (head != (current = current-&gt;rechts))
    {
        cout &lt;&lt; current-&gt;name &lt;&lt; endl;
    }
}

int main(int argc, char** argv)
{
    struct adresse *head = neue_liste();
    struct adresse *current = head;

    //int eingabe = -1;

    string name;

    /*string strasse;
    char plz[5];
    string ort;
    char geschlecht[1];*/

    // WARUM GEHT DAS NICHT ?!?!?!?!
    name = &quot;Max Mustermann&quot;;
    current = eintrag_einfuegen(current, name);

    /*while (eingabe != 0)
    {
        cout &lt;&lt; &quot;HAUPTMENU&quot; &lt;&lt; endl &lt;&lt; endl;
        cout &lt;&lt; &quot;1 - neue Adresse einfuegen&quot; &lt;&lt; endl;
        cout &lt;&lt; &quot;2 - Adresse suchen&quot; &lt;&lt; endl;
        cout &lt;&lt; &quot;3 - alle Adressen anzeigen&quot; &lt;&lt; endl;
        cout &lt;&lt; &quot;4 - Adresse loeschen&quot; &lt;&lt; endl;
        cout &lt;&lt; &quot;5 - Adresse ausgeben&quot; &lt;&lt; endl &lt;&lt; endl;
        cout &lt;&lt; &quot;0 - Programm beenden&quot; &lt;&lt; endl &lt;&lt; endl;

        cout &lt;&lt; &quot;Eingabe: &quot;;
        cin &gt;&gt; eingabe;

        cout &lt;&lt; endl &lt;&lt; endl;

        if (eingabe == 1)
        {
            cout &lt;&lt; &quot;Name der Person: &quot;;
            cin &gt;&gt; name;

            cout &lt;&lt; &quot;Strasse und Hausnummer: &quot;;
            cin &gt;&gt; strasse;

            cout &lt;&lt; &quot;Postleitzahl: &quot;;
            cin &gt;&gt; plz;

            cout &lt;&lt; &quot;Wohnort: &quot;;
            cin &gt;&gt; ort;

            cout &lt;&lt; &quot;Geschlecht (m/w): &quot;;
            cin &gt;&gt; geschlecht;

            // current = eintrag_einfuegen(current, name, strasse, plz, ort, geschlecht);
        }

        if (eingabe == 2)
        {
            cout &lt;&lt; &quot;Suchanfrage: &quot;;
            cin &gt;&gt; name;

            current = eintrag_suchen(current, name);

            if (current != false)
            {
                cout &lt;&lt; current-&gt;name &lt;&lt; endl;
            }
            else
            {
                cout &lt;&lt; &quot;Der Eintrag konnte nicht gefunden werden.&quot; &lt;&lt; endl;
            }
        }

        if (eingabe == 3)
        {
            eintraege_ausgeben(current);
        }

        if (eingabe == 4)
        {
            cout &lt;&lt; &quot;Name der Person: &quot;;
            cin &gt;&gt; name;

            current = eintrag_suchen(current, name);

            if (current != false)
            {
                current = eintrag_loeschen(current);
            }
            else
            {
                cout &lt;&lt; &quot;Der Eintrag konnte nicht gefunden werden.&quot; &lt;&lt; endl;
            }
        }

        if (eingabe == 5)
        {
            eintraege_ausgeben(current);
        }
    }*/

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/281127/problem-mit-doppelt-verketteter-liste</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 20:00:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/281127.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 27 Jan 2011 11:22:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit doppelt verketteter Liste on Thu, 27 Jan 2011 11:22:10 GMT]]></title><description><![CDATA[<p>Hallo liebe Gemeinde,</p>
<p>ich habe ein kleines Problem mit einer Aufgabe... Ziel ist es eine Adressverwaltung mit doppelt verketteter Liste zu realisieren.</p>
<p>Jedoch stürzt mir das Programm jedes mal ab, wenn ich versuche einen Namen zu speichern. Ich hänge den Quelltext mal an. Der Fehler passiert in der main() an der Stelle, an der der Name gespeichert werden soll.</p>
<p>Ich hoffe mir kann geholfen werden <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>
<p>Vielen Dank schonmal im Voraus!</p>
<p>Mit freundlichen Grüßen,<br />
cattweasel</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt;
using namespace std;

struct adresse
{
    struct adresse *links;
    struct adresse *rechts;

    string name;
};

struct adresse * neue_liste()
{
    struct adresse *temp = (struct adresse*) malloc(sizeof(struct adresse));

    temp-&gt;name;

    temp-&gt;rechts = temp;
    temp-&gt;links  = temp;

    return temp;
}

struct adresse * eintrag_einfuegen(struct adresse *list, string name)
{
    struct adresse *temp = (struct adresse *) malloc(sizeof(struct adresse));

    temp-&gt;name          = name;

    temp-&gt;links         = list;
    temp-&gt;rechts        = list-&gt;rechts;
    list-&gt;rechts        = temp;
    temp-&gt;rechts-&gt;links = temp;

    return temp;
}

struct adresse * eintrag_loeschen(struct adresse *list)
{
    list-&gt;rechts-&gt;links = list-&gt;links;
    list-&gt;links-&gt;rechts = list-&gt;rechts;

    return list-&gt;links;
}

struct adresse * eintrag_suchen(struct adresse *list, string name)
{
    struct adresse *head    = list;
    struct adresse *current = list;

    if (head-&gt;name == name)
    {
        return head;
    }

    while (head != (current-&gt;rechts))
    {
        if (current-&gt;name == name)
        {
            return current;
        }
    }

    return false;
}

struct adresse * eintrag_ausgeben(struct adresse *list, string name)
{
    struct adresse *current = eintrag_suchen(list, name);

    if (current != false)
    {
        cout &lt;&lt; current-&gt;name &lt;&lt; endl;
    }
    else
    {
        cout &lt;&lt; &quot;Der Eintrag konnte nicht gefunden werden.&quot; &lt;&lt; endl;
    }
}

struct adresse * eintraege_ausgeben(struct adresse *list)
{
    struct adresse *head    = list;
    struct adresse *current = list;

    cout &lt;&lt; head-&gt;name &lt;&lt; endl;

    while (head != (current = current-&gt;rechts))
    {
        cout &lt;&lt; current-&gt;name &lt;&lt; endl;
    }
}

int main(int argc, char** argv)
{
    struct adresse *head = neue_liste();
    struct adresse *current = head;

    //int eingabe = -1;

    string name;

    /*string strasse;
    char plz[5];
    string ort;
    char geschlecht[1];*/

    // WARUM GEHT DAS NICHT ?!?!?!?!
    name = &quot;Max Mustermann&quot;;
    current = eintrag_einfuegen(current, name);

    /*while (eingabe != 0)
    {
        cout &lt;&lt; &quot;HAUPTMENU&quot; &lt;&lt; endl &lt;&lt; endl;
        cout &lt;&lt; &quot;1 - neue Adresse einfuegen&quot; &lt;&lt; endl;
        cout &lt;&lt; &quot;2 - Adresse suchen&quot; &lt;&lt; endl;
        cout &lt;&lt; &quot;3 - alle Adressen anzeigen&quot; &lt;&lt; endl;
        cout &lt;&lt; &quot;4 - Adresse loeschen&quot; &lt;&lt; endl;
        cout &lt;&lt; &quot;5 - Adresse ausgeben&quot; &lt;&lt; endl &lt;&lt; endl;
        cout &lt;&lt; &quot;0 - Programm beenden&quot; &lt;&lt; endl &lt;&lt; endl;

        cout &lt;&lt; &quot;Eingabe: &quot;;
        cin &gt;&gt; eingabe;

        cout &lt;&lt; endl &lt;&lt; endl;

        if (eingabe == 1)
        {
            cout &lt;&lt; &quot;Name der Person: &quot;;
            cin &gt;&gt; name;

            cout &lt;&lt; &quot;Strasse und Hausnummer: &quot;;
            cin &gt;&gt; strasse;

            cout &lt;&lt; &quot;Postleitzahl: &quot;;
            cin &gt;&gt; plz;

            cout &lt;&lt; &quot;Wohnort: &quot;;
            cin &gt;&gt; ort;

            cout &lt;&lt; &quot;Geschlecht (m/w): &quot;;
            cin &gt;&gt; geschlecht;

            // current = eintrag_einfuegen(current, name, strasse, plz, ort, geschlecht);
        }

        if (eingabe == 2)
        {
            cout &lt;&lt; &quot;Suchanfrage: &quot;;
            cin &gt;&gt; name;

            current = eintrag_suchen(current, name);

            if (current != false)
            {
                cout &lt;&lt; current-&gt;name &lt;&lt; endl;
            }
            else
            {
                cout &lt;&lt; &quot;Der Eintrag konnte nicht gefunden werden.&quot; &lt;&lt; endl;
            }
        }

        if (eingabe == 3)
        {
            eintraege_ausgeben(current);
        }

        if (eingabe == 4)
        {
            cout &lt;&lt; &quot;Name der Person: &quot;;
            cin &gt;&gt; name;

            current = eintrag_suchen(current, name);

            if (current != false)
            {
                current = eintrag_loeschen(current);
            }
            else
            {
                cout &lt;&lt; &quot;Der Eintrag konnte nicht gefunden werden.&quot; &lt;&lt; endl;
            }
        }

        if (eingabe == 5)
        {
            eintraege_ausgeben(current);
        }
    }*/

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2012930</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2012930</guid><dc:creator><![CDATA[cattweasel]]></dc:creator><pubDate>Thu, 27 Jan 2011 11:22:10 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit doppelt verketteter Liste on Thu, 27 Jan 2011 11:43:11 GMT]]></title><description><![CDATA[<p>In den Zeilen 17 und 29 legst Du mit malloc zwar Speicher für ein Objekt des Tys 'adresse' an, rufst aber den Konstruktor des Members 'name' nicht auf. Damit erhälst Du uninitialisierten Speicher mit undefiniertem Verhalten.</p>
<p>Ersetze die Zeilen jeweils durch</p>
<pre><code class="language-cpp">struct adresse *temp = new adresse;
</code></pre>
<p>dann wird auch der Defaultkonstruktor von string aufgerufen.</p>
<p>malloc wird in C++ normalerweise nicht mehr benutzt.</p>
<p>Ersetze noch #include &lt;string.h&gt; durch #include &lt;string&gt; und streiche die sonstigen #include &lt;*.h&gt;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2012947</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2012947</guid><dc:creator><![CDATA[Werner_logoff]]></dc:creator><pubDate>Thu, 27 Jan 2011 11:43:11 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit doppelt verketteter Liste on Thu, 27 Jan 2011 11:49:31 GMT]]></title><description><![CDATA[<p>Hallo Werner,</p>
<p>vielen Dank für deine Hilfe. Ist auch irgendwie logisch... Fraglich warum ich nicht selbst darauf gekommen bin.</p>
<p>Jetzt funktioniert es.</p>
<p>Vielen Dank!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2012954</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2012954</guid><dc:creator><![CDATA[cattweasel]]></dc:creator><pubDate>Thu, 27 Jan 2011 11:49:31 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit doppelt verketteter Liste on Thu, 27 Jan 2011 11:58:29 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt; 
#include &lt;string&gt; 

using namespace std; 

struct Adresse 
{ 
    Adresse *links; 
    Adresse *rechts; 

    string name; 
}; 

Adresse* create(string name) 
{
    Adresse *temp = new Adresse; 

	temp-&gt;name = name;
    temp-&gt;rechts = 0; 
    temp-&gt;links  = 0; 

    return temp; 
}

Adresse* push_back(Adresse *list, string name) 
{
    Adresse *temp = new Adresse; 

    temp-&gt;name = name;
	temp-&gt;links = list;
	temp-&gt;rechts = 0;

	list-&gt;rechts = temp;

    return temp; 
} 

void erase(Adresse *list)
{
	if(list-&gt;links == 0 &amp;&amp; list-&gt;rechts == 0){}
	else if(list-&gt;links == 0){list-&gt;rechts-&gt;links = 0;}
	else if(list-&gt;rechts == 0){list-&gt;links-&gt;rechts = 0;}
	else
	{
		list-&gt;links-&gt;rechts = list-&gt;rechts;
		list-&gt;rechts-&gt;links = list-&gt;links;
	}

	delete list;
}

void show(Adresse *beginn) 
{ 
    Adresse *current = beginn; 

    cout &lt;&lt; beginn-&gt;name.c_str() &lt;&lt; &quot;\n&quot;; 

    while (current-&gt;rechts != 0) 
    { 
		current = current-&gt;rechts;
        cout &lt;&lt; current-&gt;name.c_str() &lt;&lt; &quot;\n&quot;; 
    } 
	cout &lt;&lt; endl;
}

void show_r(Adresse *end) 
{ 
    Adresse *current = end; 

    cout &lt;&lt; end-&gt;name.c_str() &lt;&lt; &quot;\n&quot;; 

    while (current-&gt;links != 0) 
    { 
		current = current-&gt;links;
        cout &lt;&lt; current-&gt;name.c_str() &lt;&lt; &quot;\n&quot;; 
    }
	cout &lt;&lt; endl;
}

int main(int argc, char** argv) 
{
    Adresse *head = create(&quot;Mueller Schultz&quot;); 
    Adresse *current = head; 

    current = push_back(current, &quot;Max Mustermann&quot;);

	Adresse *premove = current;

	current = push_back(current, &quot;Ich bin ein Star&quot;);
	current = push_back(current, &quot;holt mich hier raus&quot;); 

	show(head);
	show_r(current);

	erase(premove);

	show(head);
	show_r(current);

    return 0; 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2012962</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2012962</guid><dc:creator><![CDATA[Mischmasch]]></dc:creator><pubDate>Thu, 27 Jan 2011 11:58:29 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit doppelt verketteter Liste on Thu, 27 Jan 2011 12:21:58 GMT]]></title><description><![CDATA[<p>Hallo Mischmasch,</p>
<p>das ist ja fast schon wie im Himmel hier <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>
<p>Wenn du mir jetzt noch verrätst, wie ich nach Namen suchen kann bin ich komplett glücklich.</p>
<p>Mit freundlichen Grüßen,<br />
cattweasel</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2012981</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2012981</guid><dc:creator><![CDATA[cattweasel]]></dc:creator><pubDate>Thu, 27 Jan 2011 12:21:58 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit doppelt verketteter Liste on Thu, 27 Jan 2011 12:46:32 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt; 
#include &lt;string&gt; 

using namespace std; 

struct Adresse 
{ 
    Adresse *links; 
    Adresse *rechts; 

    string name; 
}; 

Adresse* create(string name) 
{
    Adresse *temp = new Adresse; 

	temp-&gt;name = name;
    temp-&gt;rechts = 0; 
    temp-&gt;links  = 0; 

    return temp; 
}

Adresse* push_back(Adresse *list, string name) 
{
    Adresse *temp = new Adresse; 

    temp-&gt;name = name;
	temp-&gt;links = list;
	temp-&gt;rechts = 0;

	list-&gt;rechts = temp;

    return temp; 
} 

Adresse* search(Adresse *list, string name)
{
	if(list-&gt;name == name)
		return list;

	while(list-&gt;rechts != 0)
	{
		list = list-&gt;rechts;

		if(list-&gt;name == name)
			return list;
	}

	return 0;
}

void print(Adresse *list)
{
	cout &lt;&lt; list-&gt;name.c_str() &lt;&lt; &quot;\n&quot;; 
}

void erase(Adresse *list)
{
	if(list-&gt;links == 0 &amp;&amp; list-&gt;rechts == 0){}
	else if(list-&gt;links == 0){list-&gt;rechts-&gt;links = 0;}
	else if(list-&gt;rechts == 0){list-&gt;links-&gt;rechts = 0;}
	else
	{
		list-&gt;links-&gt;rechts = list-&gt;rechts;
		list-&gt;rechts-&gt;links = list-&gt;links;
	}

	delete list;
}

void show(Adresse *current) 
{ 
    print(current);

    while (current-&gt;rechts != 0) 
    { 
		current = current-&gt;rechts;
        print(current);
    } 
	cout &lt;&lt; endl;
}

void show_r(Adresse *current) 
{ 
    print(current);

    while (current-&gt;links != 0) 
    { 
		current = current-&gt;links;
        print(current);
    }
	cout &lt;&lt; endl;
}

int main(int argc, char** argv) 
{
    Adresse *head = create(&quot;Mueller Schultz&quot;); 
    Adresse *current = head; 

    current = push_back(current, &quot;Max Mustermann&quot;);

	Adresse *premove = current;

	current = push_back(current, &quot;Ich bin ein Star&quot;);
	current = push_back(current, &quot;holt mich hier raus&quot;); 

	show(head);
	show_r(current);

	erase(premove);

	show(head);
	show_r(current);

	Adresse *psearch = search(head, &quot;Mueller Schultz&quot;);

	if(psearch != 0)
		print(psearch);

    return 0; 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2013007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2013007</guid><dc:creator><![CDATA[Mischmasch]]></dc:creator><pubDate>Thu, 27 Jan 2011 12:46:32 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit doppelt verketteter Liste on Fri, 28 Jan 2011 15:03:26 GMT]]></title><description><![CDATA[<p>Hallo Mischmasch,</p>
<p>ich habe gestern ganz vergessen mich noch bei dir zu bedanken.<br />
Das möchte ich jetzt natürlich noch nachholen: Vielen Dank noch einmal!!!</p>
<p>Aus dem Quelltext, den du mir geliefert hast, konnte ich Problemlos und ohne Vorkenntnisse in C++ meine Praktikumsaufgabe lösen <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>
<p>Mit freundlichen Grüßen,<br />
cattweasel</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2013628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2013628</guid><dc:creator><![CDATA[cattweasel]]></dc:creator><pubDate>Fri, 28 Jan 2011 15:03:26 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit doppelt verketteter Liste on Fri, 28 Jan 2011 15:25:52 GMT]]></title><description><![CDATA[<p>cattweasel schrieb:</p>
<blockquote>
<p>Hallo Mischmasch,</p>
<p>ich habe gestern ganz vergessen mich noch bei dir zu bedanken.<br />
Das möchte ich jetzt natürlich noch nachholen: Vielen Dank noch einmal!!!</p>
<p>Aus dem Quelltext, den du mir geliefert hast, konnte ich Problemlos und ohne Vorkenntnisse in C++ meine Praktikumsaufgabe lösen <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>
<p>Mit freundlichen Grüßen,<br />
cattweasel</p>
</blockquote>
<p>Das mag zwar ein guter Ansatz in C sein, aber in C++ kann man das besser lösen. Stattdessen wären hier nämlich Klassen unter Nutzung von RAII angebracht gewesen.</p>
<p>Es findet auch keine Freigabe des reservierten Speichers statt. Insgesamt ist der Code daher als schlecht zu bewerten. Insbesondere unter dem Aspekt, dass es um C++ geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2013637</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2013637</guid><dc:creator><![CDATA[jghjgh]]></dc:creator><pubDate>Fri, 28 Jan 2011 15:25:52 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit doppelt verketteter Liste on Fri, 28 Jan 2011 15:54:20 GMT]]></title><description><![CDATA[<p>jghjgh schrieb:</p>
<blockquote>
<p>Es findet auch keine Freigabe des reservierten Speichers statt. Insgesamt ist der Code daher als schlecht zu bewerten.</p>
</blockquote>
<pre><code class="language-cpp">void erase(Adresse *list)
{
    // ...
    delete list;
}
</code></pre>
<p>Die Bewertung des Codes ist bedeutungslos. Der Eleve hat verkettete Listen verstanden und somit das Ziel erreicht. Sprachspezifische Details sind überflüssiger Balast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2013642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2013642</guid><dc:creator><![CDATA[asdasd]]></dc:creator><pubDate>Fri, 28 Jan 2011 15:54:20 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit doppelt verketteter Liste on Fri, 28 Jan 2011 16:55:11 GMT]]></title><description><![CDATA[<p>asdasd schrieb:</p>
<blockquote>
<p>jghjgh schrieb:</p>
<blockquote>
<p>Es findet auch keine Freigabe des reservierten Speichers statt. Insgesamt ist der Code daher als schlecht zu bewerten.</p>
</blockquote>
<pre><code class="language-cpp">void erase(Adresse *list)
{
    // ...
    delete list;
}
</code></pre>
<p>Die Bewertung des Codes ist bedeutungslos. Der Eleve hat verkettete Listen verstanden und somit das Ziel erreicht. Sprachspezifische Details sind überflüssiger Balast.</p>
</blockquote>
<p>push_back(...) und create(...) haben jeweils ein new<br />
erase(...) hat ein delete. Die erase(...) Funktion löscht dementsprechend nur 1 Element aus der Liste raus und zwar das, welches übergeben wird. Nach dem Aufruf von Erase kann man den übergebenen Pointer nicht mehr nutzen, darauf muss man dann achten. Im Code ist auch erkennbar, dass der reservierte Speicher nicht wieder freigegeben wird. Man brauch nur die new und delete aufrufe mal zählen und merkt, dass es nicht aufgeht.</p>
<p>Der Code ist gültig, aber unsicher und unvollständig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2013656</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2013656</guid><dc:creator><![CDATA[Code ist ungut]]></dc:creator><pubDate>Fri, 28 Jan 2011 16:55:11 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit doppelt verketteter Liste on Fri, 28 Jan 2011 17:37:53 GMT]]></title><description><![CDATA[<p>Code ist ungut schrieb:</p>
<blockquote>
<p>Der Code ist gültig, aber unsicher und unvollständig.</p>
</blockquote>
<p>Was für 99% aller Hausaufgaben gilt. Aber, wie gesagt, darauf kommt es nicht an.</p>
<p>Sicher könnte man hingehen und vor Programmende noch die gesamte Liste abräumen, oder eine Funktion bauen, die das übernimmt. Ist aber unnötig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2013678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2013678</guid><dc:creator><![CDATA[asdasd]]></dc:creator><pubDate>Fri, 28 Jan 2011 17:37:53 GMT</pubDate></item></channel></rss>