<?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 Verketteterliste]]></title><description><![CDATA[<p>Hi Leute!</p>
<p>Ich habe das problem das ich bei der ersten ausgabe des wertes noch alles funktioniert und wenn ich sie das 2.mal ausgeben will bekomme ich nur noch eine speicheradresse ausgegeben und einen Programmabsturz.</p>
<p>hier noch schnell die ausgabe als code</p>
<pre><code class="language-cpp">// die Listenbestückung:
	List list;

	list.insert(0,1);
	printList(list);
	cout &lt;&lt; endl;
		// 1|

	list.insert(1,10);
	printList(list);
	cout &lt;&lt; endl;
		// 1|10|

// die printList-Funktion
	int n,i;
	Element wert;
	int error=2;
	n=list.lenght();
	for(i=0;i&lt;n;i++)
	{
		error=list.get(i,wert);
		if(error==0)
			break;
		cout&lt;&lt; &quot;Position &quot;&lt;&lt;i&lt;&lt;endl&lt;&lt;&quot;Wert &quot;&lt;&lt;wert&lt;&lt;endl;
	}
</code></pre>
<p>Danke schon mal für eure hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/139312/problem-mit-verketteterliste</link><generator>RSS for Node</generator><lastBuildDate>Sun, 30 Aug 2026 14:19:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/139312.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 05 Mar 2006 17:06:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Verketteterliste on Sun, 05 Mar 2006 17:06:03 GMT]]></title><description><![CDATA[<p>Hi Leute!</p>
<p>Ich habe das problem das ich bei der ersten ausgabe des wertes noch alles funktioniert und wenn ich sie das 2.mal ausgeben will bekomme ich nur noch eine speicheradresse ausgegeben und einen Programmabsturz.</p>
<p>hier noch schnell die ausgabe als code</p>
<pre><code class="language-cpp">// die Listenbestückung:
	List list;

	list.insert(0,1);
	printList(list);
	cout &lt;&lt; endl;
		// 1|

	list.insert(1,10);
	printList(list);
	cout &lt;&lt; endl;
		// 1|10|

// die printList-Funktion
	int n,i;
	Element wert;
	int error=2;
	n=list.lenght();
	for(i=0;i&lt;n;i++)
	{
		error=list.get(i,wert);
		if(error==0)
			break;
		cout&lt;&lt; &quot;Position &quot;&lt;&lt;i&lt;&lt;endl&lt;&lt;&quot;Wert &quot;&lt;&lt;wert&lt;&lt;endl;
	}
</code></pre>
<p>Danke schon mal für eure hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1009113</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1009113</guid><dc:creator><![CDATA[blind]]></dc:creator><pubDate>Sun, 05 Mar 2006 17:06:03 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Verketteterliste on Mon, 06 Mar 2006 07:57:59 GMT]]></title><description><![CDATA[<p>Ich gehe stark davon aus das der Fehler irgendwo in deiner List Klasse steckt.<br />
Man sieht da nicht sonderlich viel, aber auf den ersten Blick ist da nichts zu erkennen was den Absturz verursachen könnten.</p>
<p>BR<br />
evilissimo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1009419</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1009419</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Mon, 06 Mar 2006 07:57:59 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Verketteterliste on Mon, 06 Mar 2006 13:23:40 GMT]]></title><description><![CDATA[<p>Ich habe da auch keinen Fehler gefunden.</p>
<p>Hier noch die Klassendefinition der Liste</p>
<pre><code class="language-cpp">#ifndef Element
typedef int Element;
#endif

class List
{
public:
	List();			//Konstruktor. Erzeugt leere Liste.
	~List();		//Destruktor.

	int insert (int pos, Element x);
	//Fuegt x in die Liste an Position pos ein. Elemente danach
	//werden um 1 Pos. noch rechts verschoben.
	//Liefert 0, bei falscher Positio (pos &lt; 0 od. pos &gt; lenght); sonst 1.

	int del (int pos);
	//Loescht Element an Position pos. Element danach
	//werden um 1 Pos. nach links verschoben.
	//Liefert 0, bei falscher Position (pos &lt; 0 od. pos &gt;= lenght); sonst 1.

	int get (int pos, Element&amp; x) const;
	//Liefert Element x an Position pos.
	//Liefert 0, bei falscher Position (pos &lt; 0 od. pos &gt;= lenght); sonst 1.

	int assign (int pos, Element x);
	//Weist Element x an Position pos zu.
	//Liefert 0, bei falscher Position (pos &lt; 0 od. pos &gt;= lenght); sonst 1.

	int lenght() const { return n;}
	//liefert Anz. Elemente

private:
	Element* a;	//Liste als dyn. Feld
	int n;		//Anz. Elemente
	int gr;		//Feldgröße von a
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1009692</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1009692</guid><dc:creator><![CDATA[blind]]></dc:creator><pubDate>Mon, 06 Mar 2006 13:23:40 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Verketteterliste on Mon, 06 Mar 2006 13:25:35 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich befürchte der Fehler liegt nicht in der Definition.</p>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1009693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1009693</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Mon, 06 Mar 2006 13:25:35 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Verketteterliste on Mon, 06 Mar 2006 13:26:29 GMT]]></title><description><![CDATA[<p>David_pb schrieb:</p>
<blockquote>
<p>Hi!</p>
<p>Ich befürchte der Fehler liegt nicht in der Definition.</p>
<p>grüße</p>
</blockquote>
<p><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="👍"
    /></p>
<p>wollt ich auch grad schreiben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1009694</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1009694</guid><dc:creator><![CDATA[ser1al]]></dc:creator><pubDate>Mon, 06 Mar 2006 13:26:29 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Verketteterliste on Mon, 06 Mar 2006 16:46:23 GMT]]></title><description><![CDATA[<p>Hi Leute zu eurer kenntnis:</p>
<p>Beim ersten Aufruf der Funktion &quot;printList (List list)&quot; funktioniert alles.<br />
Beim zweiten Aufruf der Funtkion gibt es erst den Fehler und zwar das die erste Funktion wohl der erste wert der liste ist nur noch eine Speicheradresse oder so etwas anderes zumindest steht nicht mehr der erste wert zur verfügung.</p>
<p>MfG<br />
blind</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1009886</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1009886</guid><dc:creator><![CDATA[blind]]></dc:creator><pubDate>Mon, 06 Mar 2006 16:46:23 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Verketteterliste on Tue, 07 Mar 2006 05:35:10 GMT]]></title><description><![CDATA[<p>dann wärs ja mal toll, wenn du uns den vollständigen code der liste präsentierst...oder besser doch nicht... <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="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1010205</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1010205</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Tue, 07 Mar 2006 05:35:10 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Verketteterliste on Tue, 07 Mar 2006 06:49:04 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>blind schrieb:</p>
<blockquote>
<p>Hi Leute zu eurer kenntnis:</p>
<p>Beim ersten Aufruf der Funktion &quot;printList (List list)&quot; funktioniert alles.<br />
Beim zweiten Aufruf der Funtkion gibt es erst den Fehler und zwar das die erste Funktion wohl der erste wert der liste ist nur noch eine Speicheradresse oder so etwas anderes zumindest steht nicht mehr der erste wert zur verfügung.</p>
<p>MfG<br />
blind</p>
</blockquote>
<p>Glaubst du wir können hellsehen und uns anhand deiner Klassendefinition die Implementation vorstellen?<br />
Ich kann das zumindest nicht, daher wäre es sehr nett wenn du deinen Quellcode posten würdest. Ansonsten kann dir schlecht geholfen werden! <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üße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1010215</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1010215</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Tue, 07 Mar 2006 06:49:04 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Verketteterliste on Tue, 07 Mar 2006 09:42:00 GMT]]></title><description><![CDATA[<p>Ich hab geschrieben, dass hier ein ; fehlt. Wieso wurde das gelöscht? Muss da kein ; hin?</p>
<pre><code>int lenght() const { return n;}
    //liefert Anz. Elemente
</code></pre>
<p>Also so:</p>
<pre><code>int lenght() const { return n;};
    //liefert Anz. Elemente
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1010321</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1010321</guid><dc:creator><![CDATA[Nachfrag]]></dc:creator><pubDate>Tue, 07 Mar 2006 09:42:00 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Verketteterliste on Tue, 07 Mar 2006 09:48:49 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Nein, muss nicht:</p>
<pre><code class="language-cpp">void foo()
{
  std::cout &lt;&lt; &quot;foo\n&quot;;
} // hier ist ja auch kein &quot;;&quot;
</code></pre>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1010325</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1010325</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Tue, 07 Mar 2006 09:48:49 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Verketteterliste on Tue, 07 Mar 2006 22:48:53 GMT]]></title><description><![CDATA[<p>Hier für alle die nicht 2 posts zusammen sich angucken können der komplette code des Programms nochmal in einem post</p>
<pre><code class="language-cpp">//main.cpp

#include &quot;listAsArray.h&quot;
#include &quot;iostream.h&quot;

//Definition von printlist:....

void printList (List list)
{
	int n,i;
	Element wert;
	int error=2;
	n=list.lenght();
	for(i=0;i&lt;n;i++)
	{
		error=list.get(i,wert);
		if(error==0)
			break;
		cout&lt;&lt; &quot;Position &quot;&lt;&lt;i&lt;&lt;endl&lt;&lt;&quot;Wert &quot;&lt;&lt;wert&lt;&lt;endl;
	}
}

//Hauptprogramm

int main()
{
	List list;

	list.insert(0,1);
	printList(list);
	cout &lt;&lt; endl;
		// 1|

	list.insert(1,10);
	printList(list);
	cout &lt;&lt; endl;
		// 1|10|

	list.insert(1,2);
	printList(list);
	cout &lt;&lt; endl;
		// 1|2|10|

	list.assign(1,5);
	printList(list);
	cout &lt;&lt; endl;
		//1|5|10|

	list.del(0);
	printList(list);
		//5|10|
	return 0;
}

//listAsArray.cpp

#include &quot;listAsArray.h&quot;

static const int blockGr =100;	// blockGr wird durch static nach aussen verborgen

List::List()
{
	a = new Element[blockGr];
	gr = blockGr;
	n=0;
}

List::~List()
{
	delete [] a;
}

int List::insert(int pos, Element x)
{
	if (pos &lt; 0 || pos &gt;n)
		return 0;		//Falsche Pos.
	if (n&gt;=gr)			//Kein Platz mehr
	{
		Element* h = new Element[gr+blockGr];
		for ( int j = 0; j&lt;gr;j++)
			h[j] = a[j];
		delete[] a;
		a=h;
		gr += blockGr;
	}
	for (int i = n; i&gt;pos;i--)
		a[i]=a[i-1];
	a[pos] = x;
	n++;
	return 1;
}

int List::del(int pos)
{
	if(pos&lt;0|| pos &gt;=n)
		return 0;
	for (int i=pos;i&lt;n;i++)
		a[i]=a[i+1];
	n--;
	return 1;
}

int List::get(int pos, Element&amp; x) const
{
	if(pos &lt; 0 || pos &gt;= n)
		return 0;
	else
	{
		x=a[pos];
		return 1;
	}
}

int List::assign(int pos, Element x)
{
	if (pos &lt; 0 || pos &gt;=n)
		return 0;
	else
	{
		a[pos] = x;
		return 1;
	}
}

//listAsArray.h

#ifndef Element
typedef int Element;
#endif

class List
{
public:
	List();			//Konstruktor. Erzeugt leere Liste.
	~List();		//Destruktor.

	int insert (int pos, Element x);
	//Fuegt x in die Liste an Position pos ein. Elemente danach
	//werden um 1 Pos. noch rechts verschoben.
	//Liefert 0, bei falscher Positio (pos &lt; 0 od. pos &gt; lenght); sonst 1.

	int del (int pos);
	//Loescht Element an Position pos. Element danach
	//werden um 1 Pos. nach links verschoben.
	//Liefert 0, bei falscher Position (pos &lt; 0 od. pos &gt;= lenght); sonst 1.

	int get (int pos, Element&amp; x) const;
	//Liefert Element x an Position pos.
	//Liefert 0, bei falscher Position (pos &lt; 0 od. pos &gt;= lenght); sonst 1.

	int assign (int pos, Element x);
	//Weist Element x an Position pos zu.
	//Liefert 0, bei falscher Position (pos &lt; 0 od. pos &gt;= lenght); sonst 1.

	int lenght() const { return n;};
	//liefert Anz. Elemente

private:
	Element* a;	//Liste als dyn. Feld
	int n;		//Anz. Elemente
	int gr;		//Feldgröße von a
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1011137</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1011137</guid><dc:creator><![CDATA[blind]]></dc:creator><pubDate>Tue, 07 Mar 2006 22:48:53 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Verketteterliste on Wed, 08 Mar 2006 07:33:28 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Dein Problem ist, das du an <em>printList()</em> keine Referenz übergibst. Also erstellt das Programm eine Kopie von &quot;List&quot; wobei der Zeiger auch kopiert wird, aber es wird <strong>kein</strong> neuer Speicher reserviert, sondern die Zeigeradresse wird einfach übergeben.</p>
<p>Am ende von <em>printList()</em> wird die Kopie zerstört, es wird also der Konstruktor aufgerufen und dein Speicher wird gelöscht.<br />
Jetzt stehst du natürlich beim nächsten <em>insert()</em> ziemlich dumm da, weil dein Speicher weg ist! <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>Was du tuen kannst:<br />
o Einen eigenen Copy Ctor schreiben, der für die Kopie extra Speicher reserviert und die Werte, des zu kopierenden Objekts, ebenfalls kopiert.<br />
o Einen Referenzenzähler, das Objekt wird erst vollständig zerstört wenn keine Referenz mehr auf es zeigt.<br />
o Eine Referenz an <em>printList()</em> übergeben.</p>
<p>grüße</p>
<p>p.s.: #include &quot;iostream.h&quot; was soll das darstellen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1011217</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1011217</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Wed, 08 Mar 2006 07:33:28 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Verketteterliste on Wed, 08 Mar 2006 07:51:41 GMT]]></title><description><![CDATA[<p>David_pb schrieb:</p>
<blockquote>
<p>#include &quot;iostream.h&quot; was soll das darstellen?</p>
</blockquote>
<p>Die Header wird für die Verwendung von cout benötigt.</p>
<p>MfG<br />
Blind</p>
<p>P.S.: Kannst mir mal ein Beispiel für die richtige Referenzenübergabe geben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1011246</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1011246</guid><dc:creator><![CDATA[blind]]></dc:creator><pubDate>Wed, 08 Mar 2006 07:51:41 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Verketteterliste on Wed, 08 Mar 2006 07:54:31 GMT]]></title><description><![CDATA[<p>blind schrieb:</p>
<blockquote>
<p>David_pb schrieb:</p>
<blockquote>
<p>#include &quot;iostream.h&quot; was soll das darstellen?</p>
</blockquote>
<p>Die Header wird für die Verwendung von cout benötigt.</p>
</blockquote>
<p>Falscher Header - richtig heißt es &quot;include &lt;iostream&gt;&quot; (ohne .h und in spitzen Klammern, da es ein Standard-Header ist)</p>
<blockquote>
<p>P.S.: Kannst mir mal ein Beispiel für die richtige Referenzenübergabe geben?</p>
</blockquote>
<pre><code class="language-cpp">void PrintList(const List&amp; list)
{
  ...
  //der Rest kann so bleiben
}
</code></pre>
<p>(wichtig ist der Parametertyp &quot;const List**&amp;**&quot;)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1011248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1011248</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 08 Mar 2006 07:54:31 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Verketteterliste on Wed, 08 Mar 2006 08:08:08 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Die Klasse sollte übrigens trozdem einen Copy Ctor besitzen. Du hast ja gesehen wie schnell solche Fehler passieren, wenn jemand andres deine Klasse verwendet, der nicht weiß das es Probleme geben kann, der steht dann ebenfalls recht bescheuert da.<br />
Genauso solltest du deiner Klasse einen Zuweisungsoperator spendieren, da hier das selbe Problem ist.</p>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1011256</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1011256</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Wed, 08 Mar 2006 08:08:08 GMT</pubDate></item></channel></rss>