<?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[eine Klasse für ein dynamisches Array]]></title><description><![CDATA[<p>Gutenacht schrieb:</p>
<blockquote>
<p>Hallo zusammen,<br />
Ich bin C++ Anfänger, ich hoffe jemand mir helfen kann.<br />
<strong>Die Aufgabe:</strong><br />
Entwickeln Sie eine Klasse für ein dynamisches Array. Allerdings soll bei Überlauf nicht das gesamte Array neu alloziert werden, sondern es soll nur Platz für 20 neue Arrayelemente geschaffen werden. Die verschiedenen Teile des Arrays sollen mittels einer Liste zusammengehalten werden. Auf diese Art kann man sich das aufwändige Kopieren der Arrayelemente beim Vergrößern ersparen. Implementieren Sie einen Kopierkonstruktor und einen Zuweisungsoperator für diese Art von dynamischen Arrays.</p>
<p>Ich mach die Aufgabe einfacher, nehme ich ein stringarray, struct statt class und eine fixe array in der Liste mit 21 elemente (20 + ’\0’) statt eine dynamische array.<br />
Dann habe ich generell das Problem, wie ich das array mit 20 elemente füllen kann?<br />
Ich habe 2 Möglichkeiten, entweder ist die Liste leer (am Anfang) oder ist was drinnen. Wenn sie leer und die Eingabe kleiner als 20 ist, ist easy. Ich habe das Problem mit Eingaben, die länger als 20 sind oder wenn die Liste nicht leer ist.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;iomanip&gt;
using namespace std;

#define MAX 21	   //Stringlaenge zum speichern
#define Laenge 50	//50 Zeichenlenge zum lesen, kann geändert werden

struct List{
   char daten[MAX]; //Daten werden reingeschrieben

   struct List *anfang;
   struct List *next;
};
//----------------------------------
struct List *next   = NULL;
struct List *anfang = NULL;

void anhaengen(char *d) {
   struct List *zeiger;

   if(anfang == NULL) { //gleich am Anfang ist die Liste leer

      if((anfang = (struct List *)
		  malloc(sizeof(struct List))) == NULL) {
         cout &lt;&lt; stderr, &quot;Kein Speicherplatz vorhanden fuer anfang\n&quot;;
         return;
      }
		
      strcpy(anfang-&gt;daten,d); //wenn d länger als 20 ist???
      
      anfang-&gt;next=NULL;      //Ende der Liste, zeigt auf NULL
   }

   else {
      zeiger=anfang; // 1. Element
      while(zeiger-&gt;next != NULL) //suche letzte element
         zeiger=zeiger-&gt;next;
     
      if((zeiger-&gt;next =(struct List *)
		malloc(sizeof(struct List))) == NULL) {
          cout &lt;&lt; stderr,&quot;Kein Speicherplatz für das letzte Element\n&quot;;
          return;
      }
       
      zeiger=zeiger-&gt;next;     // zeiger auf neuen Speicherplatz
      strcpy(zeiger-&gt;daten,d); //wenn die Liste nicht leer ist???
     
      
      zeiger-&gt;next=NULL;
   }
}
// Funktion zur Eingabe der Daten
void eingabe(void) {
	char str1[Laenge];
	char *ptr;
	cout &lt;&lt; &quot;Ihre Eingabe : &quot;;
	
	fgets(str1, Laenge, stdin);
	ptr = strrchr(str1, '\n');
	*ptr = '\0';

	anhaengen(str1);
}

// Funktion zum Ausgeben der Dateien 
void ausgabe(void) {
   struct List *zeiger = anfang;
   cout &lt;&lt; &quot;\nIhre stringarray: &quot;;
   int cnt=0;
   if (zeiger == NULL)
	   cout&lt;&lt; &quot;Keine Eingabe! \n&quot;;
   else
   while(zeiger != NULL) {
	     cnt++;
		 cout &lt;&lt; zeiger-&gt;daten &lt;&lt;&quot; &quot;;
         zeiger=zeiger-&gt;next;
   }
   cout &lt;&lt;&quot;\nAnzahl Ihre Liste : &quot; &lt;&lt; cnt &lt;&lt;endl;
}

//-----------

int main(void) {
   int wahl = 0;
   char str2[MAX]={0}; //mit null initialisiere
   do {
	  cout &lt;&lt;endl;
	  cout &lt;&lt;&quot;1 : Eingabe\n&quot;;
     
      cout &lt;&lt;&quot;2 : Ausgabe\n&quot;;

	  cout &lt;&lt;&quot;3 : ?\n&quot;;
     
      cout &lt;&lt;&quot;5 : Ende\n&quot;;
	  cout &lt;&lt;endl;
      cout &lt;&lt;&quot;Ihre Wahl : &quot;;
	 
      scanf(&quot;%d&quot;,&amp;wahl);
      getchar();
      switch(wahl) {
         case 1 : eingabe();
                  break;
         case 2 : ausgabe();
                  break;
	//	 case 3 : counter();
	//			  break;
	//	 case 4 : zuweisung();
	//			  break;

         case 5 : break;
         default: cout&lt;&lt;&quot;Falsche Eingabe!\n&quot;;
      }
   } while(wahl != 5);
   return 0;
 
}
</code></pre>
<p>Herzlichen Dank.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/topic/238993/eine-klasse-für-ein-dynamisches-array</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 17:14:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/238993.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 17 Apr 2009 22:02:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to eine Klasse für ein dynamisches Array on Fri, 17 Apr 2009 22:02:02 GMT]]></title><description><![CDATA[<p>Gutenacht schrieb:</p>
<blockquote>
<p>Hallo zusammen,<br />
Ich bin C++ Anfänger, ich hoffe jemand mir helfen kann.<br />
<strong>Die Aufgabe:</strong><br />
Entwickeln Sie eine Klasse für ein dynamisches Array. Allerdings soll bei Überlauf nicht das gesamte Array neu alloziert werden, sondern es soll nur Platz für 20 neue Arrayelemente geschaffen werden. Die verschiedenen Teile des Arrays sollen mittels einer Liste zusammengehalten werden. Auf diese Art kann man sich das aufwändige Kopieren der Arrayelemente beim Vergrößern ersparen. Implementieren Sie einen Kopierkonstruktor und einen Zuweisungsoperator für diese Art von dynamischen Arrays.</p>
<p>Ich mach die Aufgabe einfacher, nehme ich ein stringarray, struct statt class und eine fixe array in der Liste mit 21 elemente (20 + ’\0’) statt eine dynamische array.<br />
Dann habe ich generell das Problem, wie ich das array mit 20 elemente füllen kann?<br />
Ich habe 2 Möglichkeiten, entweder ist die Liste leer (am Anfang) oder ist was drinnen. Wenn sie leer und die Eingabe kleiner als 20 ist, ist easy. Ich habe das Problem mit Eingaben, die länger als 20 sind oder wenn die Liste nicht leer ist.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;iomanip&gt;
using namespace std;

#define MAX 21	   //Stringlaenge zum speichern
#define Laenge 50	//50 Zeichenlenge zum lesen, kann geändert werden

struct List{
   char daten[MAX]; //Daten werden reingeschrieben

   struct List *anfang;
   struct List *next;
};
//----------------------------------
struct List *next   = NULL;
struct List *anfang = NULL;

void anhaengen(char *d) {
   struct List *zeiger;

   if(anfang == NULL) { //gleich am Anfang ist die Liste leer

      if((anfang = (struct List *)
		  malloc(sizeof(struct List))) == NULL) {
         cout &lt;&lt; stderr, &quot;Kein Speicherplatz vorhanden fuer anfang\n&quot;;
         return;
      }
		
      strcpy(anfang-&gt;daten,d); //wenn d länger als 20 ist???
      
      anfang-&gt;next=NULL;      //Ende der Liste, zeigt auf NULL
   }

   else {
      zeiger=anfang; // 1. Element
      while(zeiger-&gt;next != NULL) //suche letzte element
         zeiger=zeiger-&gt;next;
     
      if((zeiger-&gt;next =(struct List *)
		malloc(sizeof(struct List))) == NULL) {
          cout &lt;&lt; stderr,&quot;Kein Speicherplatz für das letzte Element\n&quot;;
          return;
      }
       
      zeiger=zeiger-&gt;next;     // zeiger auf neuen Speicherplatz
      strcpy(zeiger-&gt;daten,d); //wenn die Liste nicht leer ist???
     
      
      zeiger-&gt;next=NULL;
   }
}
// Funktion zur Eingabe der Daten
void eingabe(void) {
	char str1[Laenge];
	char *ptr;
	cout &lt;&lt; &quot;Ihre Eingabe : &quot;;
	
	fgets(str1, Laenge, stdin);
	ptr = strrchr(str1, '\n');
	*ptr = '\0';

	anhaengen(str1);
}

// Funktion zum Ausgeben der Dateien 
void ausgabe(void) {
   struct List *zeiger = anfang;
   cout &lt;&lt; &quot;\nIhre stringarray: &quot;;
   int cnt=0;
   if (zeiger == NULL)
	   cout&lt;&lt; &quot;Keine Eingabe! \n&quot;;
   else
   while(zeiger != NULL) {
	     cnt++;
		 cout &lt;&lt; zeiger-&gt;daten &lt;&lt;&quot; &quot;;
         zeiger=zeiger-&gt;next;
   }
   cout &lt;&lt;&quot;\nAnzahl Ihre Liste : &quot; &lt;&lt; cnt &lt;&lt;endl;
}

//-----------

int main(void) {
   int wahl = 0;
   char str2[MAX]={0}; //mit null initialisiere
   do {
	  cout &lt;&lt;endl;
	  cout &lt;&lt;&quot;1 : Eingabe\n&quot;;
     
      cout &lt;&lt;&quot;2 : Ausgabe\n&quot;;

	  cout &lt;&lt;&quot;3 : ?\n&quot;;
     
      cout &lt;&lt;&quot;5 : Ende\n&quot;;
	  cout &lt;&lt;endl;
      cout &lt;&lt;&quot;Ihre Wahl : &quot;;
	 
      scanf(&quot;%d&quot;,&amp;wahl);
      getchar();
      switch(wahl) {
         case 1 : eingabe();
                  break;
         case 2 : ausgabe();
                  break;
	//	 case 3 : counter();
	//			  break;
	//	 case 4 : zuweisung();
	//			  break;

         case 5 : break;
         default: cout&lt;&lt;&quot;Falsche Eingabe!\n&quot;;
      }
   } while(wahl != 5);
   return 0;
 
}
</code></pre>
<p>Herzlichen Dank.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1697571</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1697571</guid><dc:creator><![CDATA[ali_K]]></dc:creator><pubDate>Fri, 17 Apr 2009 22:02:02 GMT</pubDate></item><item><title><![CDATA[Reply to eine Klasse für ein dynamisches Array on Sat, 18 Apr 2009 07:39:01 GMT]]></title><description><![CDATA[<p>Ich glaube du hast schlichtweg deine Aufgabe nicht richtig verstanden. Ziel ist es eine <em>Klasse</em> zu programmieren, aber genau das tust du nicht. Erstmal solltest du das ganze Zeug, was du da zusammengeschrieben hast daher in eine Klasse schreiben. (Ansonsten wirst du auch weder Kopierkonstruktor, noch Zuweisungsoperator implementieren können)<br />
Alles was du bisher machst ist eine List von Strings zu erstellen. Ich kann in der Aufgabe allerdings auch nirgends etwas von Strings lesen.</p>
<p>Ich empfehle dir daher, dir nochmal ein kleines Tut über Objektorientierung durchzulesen. <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="😉"
    /><br />
Das scheint ihr ja dort an der Uni Wien nicht ordentlich behandelt zu haben (oder hast du einfach nicht aufgepasst? :P)</p>
<p>btw. ist das, was du hier zu programmieren versuchst C++, KEIN Ansi-C. Deswegen bitte Verschiebung ins richtige Forum..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1697619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1697619</guid><dc:creator><![CDATA[cerotidinon]]></dc:creator><pubDate>Sat, 18 Apr 2009 07:39:01 GMT</pubDate></item><item><title><![CDATA[Reply to eine Klasse für ein dynamisches Array on Sat, 18 Apr 2009 17:29:15 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-2713.html" rel="nofollow">Nobuo T</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-10.html" rel="nofollow">ANSI C</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-15.html" rel="nofollow">C++</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39405.html" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1697875</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1697875</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Sat, 18 Apr 2009 17:29:15 GMT</pubDate></item><item><title><![CDATA[Reply to eine Klasse für ein dynamisches Array on Tue, 21 Apr 2009 20:37:30 GMT]]></title><description><![CDATA[<p>cerotidinon schrieb:</p>
<blockquote>
<p>Ich glaube du hast schlichtweg deine Aufgabe nicht richtig verstanden. Ziel ist es eine <em>Klasse</em> zu programmieren, aber genau das tust du nicht....<br />
Das scheint ihr ja dort an der Uni Wien nicht ordentlich behandelt zu haben (oder hast du einfach nicht aufgepasst? :P)<br />
btw. ist das, was du hier zu programmieren versuchst C++, KEIN Ansi-C. Deswegen bitte Verschiebung ins richtige Forum..</p>
</blockquote>
<p>Ali schrieb:</p>
<blockquote>
<p>Zuerst <strong>danke</strong> ich euch fürs Verschieben in richtigem Forum.<br />
Wegen der Aufgabe hast du Recht. Ich habe aber andere Frage gestellt gehabt, anscheinen habe ich mich nicht so richtig ausgedruckt, tut mir leid.<br />
An der Uni Wien haben wir schon gelernt, aber innerhalb eines Semesters kann man nicht alles lernen. Wenn ihr irgendwelche Schwäche sieht, liegt sicher an mir, ich muss viel üben! <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="🙂"
    /><br />
Also den Code habe ich jetzt geändert, es fehlt aber einiges. <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 />
Brauche ich eine weitere Klasse (z.B. class List der selber 2 Zeiger beinhaltet *anfang und *zeiger), wie normale verkettete Liste?<br />
Und das Problem mit einfügen habe ich noch, wo od. wie soll ich nächste element anfordern, wenn meine dynamische array voll wird (in der Methode einfügen od. im Hauptprogramm muss das geschehen)?<br />
Ich bin dankbar für jede Hilfe.<br />
LG</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;iomanip&gt;
using namespace std;

//=============================================

class element {
private:
	int max;		//maximale Arraylaenge = 20
	int itsLen;		//aktuelle Arraylaenge
	int *inhalt;	//dynamisches array, hier kommen die werte rein. 
	element *next;	//zeigt auf das naechste Objekt
public:
	//=== Konstrukturen ===
	element(int n=20);				//Konstruktur
	element(int n, int wert); 
	element (const int* const);
	~element();						//Destruktur
	
	//=== Ueberladene Operatoren ===
	int &amp;operator[](int i);			//Index-Operator
	int operator[](int i)const;
	element(const element&amp;);			//Kopierkonstruktur
	element &amp;operator=(const element&amp;);	//Operator = od. Zuweisung

	int length() const{return itsLen;}
	
	bool anhaengen(int wert);		//eine element wird angehaengt
	bool remove(int pos);			//element vom position pos loeschen

	void printall(void);

	//friend class List;
};

class element *anfang = NULL;
class element *zeiger = NULL;

int arr_len(const int *s)			//arraylaenge wird zurueck gegeben.
{
	if(!s) return 0;
	int itsLen=0;
	while(s[itsLen])
		++itsLen;
	return itsLen;
}

//=============================================

element::element(int n)
{
	max=n; itsLen=0;			//max und itsLen setzen.
	inhalt = new int[20];		//Speicher reservieren
}

element::element(int n, int wert)
{
	max=itsLen=n;				//max und itsLen setzen.
	inhalt = new int[20];
	
	for(int i=0;i&lt;20;++i)		//Speicher reservieren
		inhalt[i]=wert;
}

// Konvertiert ein integerarray in einem Array 
element::element(const int *cpelement)
{
	itsLen = arr_len(cpelement);
	inhalt = new int[itsLen];
	for (int i=0; i&lt;itsLen; i++)
		inhalt[i] = cpelement[i];
}

// Destruktor
element::~element ()
{
	delete [] inhalt;
}

//erster Operand ist das Feld (der zeiger), 
//und zweiter ist der Index zur Aenderung von Array
int &amp;element::operator[](int i)
{
	if(i&lt;0 || i&gt;=itsLen)
	{
		cerr &lt;&lt; &quot;\nclass element is out of range!&quot;;
		exit(1);
	}
	return inhalt[i];
}

int element::operator [](int i)const
{
	if(i&lt;0 || i&gt;=itsLen)
	{
		cerr &lt;&lt; &quot;\nclass element is out of range!&quot;;
		exit(1);
	}
	return inhalt[i];
}

// Kopierkonstruktur
element::element(const element&amp; s)
{
	max = s.max;
	itsLen = s.itsLen;
	inhalt = new int[max];

	for (int i=0; i&lt;itsLen; i++)
		inhalt[i] = s.inhalt[i];

}
// Selbstzuweisung pruefen, Speicher freigeben,
// dann Array und Groesse kopieren
element&amp; element::operator =(const element&amp; s)
{
	if(this!=&amp;s)				//keine Selbszuweisung
	{
		max = s.max;
		itsLen = s.itsLen;
		delete[] inhalt;		//Speicher freigeben
		
		inhalt = new int[max];	//Speicher neu reservieren
		for (int i=0; i&lt;itsLen; i++)
			inhalt[i]=s.inhalt[i];
	}
	return *this;
}

bool element::anhaengen(int wert)
{
	if (anfang==NULL)
	{
		if (itsLen &lt; max)
		{
			anfang-&gt;inhalt;
			inhalt[itsLen++] = wert;
			
			return true;
		}
		else 
			return false;
	}
}
// Für die Aufgabe brauchen wir keine remove!
bool element::remove(int pos)
{
	if (pos &gt;= 0 || pos &lt; itsLen)
	{
		for (int i=pos; i&lt;itsLen-1; ++i)
			inhalt[i] = inhalt[i+1];
		itsLen--;
		return true;
	}
	else
		return false;
}

void element::printall(void) //muss korrigiert werden !!!
{
	//int inhalt[20]={0};
	if (anfang!=NULL)
	{
		zeiger=anfang;
		while (zeiger-&gt;next !=NULL)
		{
			for (int i=0;i&lt;20;++i)
			{
				cout&lt;&lt;zeiger-&gt;inhalt[i];
			}
			cout&lt;&lt;endl;
			zeiger = zeiger-&gt;next;
		}
		for (int i=0; i&lt;itsLen;++i)
			cout&lt;&lt;zeiger-&gt;inhalt[i];
	}
	cout&lt;&lt;endl;
}
/*			//wahrscheinlich muss ich zweite Klasse definieren?
class List
{
public:
	element *anfang;
	element *zeiger;
public:
	List(void);
	~List(void);

};

List::List(void)
{
	anfang=NULL;
	zeiger=NULL;

// und weitere Methoden
}*/

//------------------------------------------------------------------------
// Hauptprogramm
int main(void) {	

	int i, j;
	element v(9);		//leer
	element w(10,1);	//10 elemente mit nur eins
	cout &lt;&lt; &quot;\naktuelle Anzahl Elemente in v: &quot; &lt;&lt; v.length();
	cout &lt;&lt; &quot;\naktuelle Anzahl Elemente in w: &quot; &lt;&lt; w.length() &lt;&lt; endl;

	cout &lt;&lt; &quot;\naktuelle Inhatl von v und w wird ausgegeben: &quot; &lt;&lt; endl;
	
	cout &lt;&lt; &quot;v: &quot;;
	for(i=0;i&lt;v.length();i++)
		cout &lt;&lt; setw(4) &lt;&lt; v[i]; //wird nichts ausgegeben! ist leer
	cout &lt;&lt; endl;
	cout &lt;&lt; &quot;w: &quot;;
	for(j=0;j&lt;w.length();j++)
		cout &lt;&lt; setw(4) &lt;&lt; w[j];
	cout &lt;&lt; endl;

	int x=5;
	for (;x&lt;30;x+=5)
	v.anhaengen(x);
	cout &lt;&lt; &quot;\nDie Vektorelemente Nach dem Anhaengen: &quot;&lt;&lt;endl;
	for(i=0;i&lt;v.length();i++)
		cout &lt;&lt; setw(4) &lt;&lt; v[i]; 
	cout &lt;&lt; endl;

	v.anhaengen(7);	
	v.anhaengen(8);
	v.anhaengen(9);
	v.anhaengen(10);
	v.anhaengen(11);
	v.anhaengen(12);
	v.anhaengen(13);
	
	cout &lt;&lt; &quot;\nAn v wurde weitere Elemente angehaengt: &quot; &lt;&lt; endl;
	for(i=0;i&lt;v.length();i++)
		cout &lt;&lt; setw(4) &lt;&lt; v[i]; 
	cout &lt;&lt;endl;

	const element cpv(v);		//Kopierkonstruktur
	cout &lt;&lt; &quot;\nKopie von v wurde angelegt: &quot; &lt;&lt; endl;
	for(i=0;i&lt;cpv.length();i++)
		cout &lt;&lt; setw(4) &lt;&lt; cpv[i];
	cout &lt;&lt; endl;

	v = w;		//Zuweisung
	cout &lt;&lt; &quot;\nDie Elemente nach der Zuweisung: &quot; &lt;&lt; endl;
	for (j=0;j&lt;v.length();++j)
		cout &lt;&lt; setw(4) &lt;&lt; v[i];
	cout &lt;&lt; endl;
	
	//v.printall(); //das funktioniert nicht, sollte korrigiert werden!

	
return 0;
}
</code></pre>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1699408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699408</guid><dc:creator><![CDATA[ali_K]]></dc:creator><pubDate>Tue, 21 Apr 2009 20:37:30 GMT</pubDate></item><item><title><![CDATA[Reply to eine Klasse für ein dynamisches Array on Wed, 22 Apr 2009 05:06:29 GMT]]></title><description><![CDATA[<p>Sehr schön.Wenn du dann alt genug bist, und dich oder wen auch immer nicht mehr quotest,sondern alleine deine Frage stellst,kriegst du eventuell auch eine Antwort.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1699480</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699480</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Wed, 22 Apr 2009 05:06:29 GMT</pubDate></item><item><title><![CDATA[Reply to eine Klasse für ein dynamisches Array on Wed, 22 Apr 2009 08:16:57 GMT]]></title><description><![CDATA[<p>Na das sieht doch schon eher nach der Aufgabenstellung aus. <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>Ich habe deinen Sourcecode jetzt nur kurz überflogen, aber du scheinst jetzt lediglich eine Klasse für ein Element (bestehend aus einem Array mit 20 Elementen) angelegt zu haben. Das musst du zwar nicht machen, ist aber ein guter Ansatz. Das Array innerhalb dieser Klasse kannst du jedoch statisch anlegen (also mit der festen Größe 20), das jedoch nur nebenbei.</p>
<p>Ziel deiner Aufgabe ist es eine Liste aus Arrays zu erstellen. Immer wenn die vorhandenen Arrays voll sind (du wieder 20 Elemente gespeichert hast) wird dann ein neues Listenelement mit Platz für 20 neue Elemente angelegt.<br />
Das heißt im Klartext, du musst noch eine übergeordnete Klasse anlegen, die im Prinzip nur deine Listenelemente verwaltet. (Also neue hinzufügt etc.)</p>
<p>Ziel ist es sowas zu haben:</p>
<pre><code>Liste:

ListElem1 --&gt; ListElem2 --&gt; ListElem3 --&gt; ...
 |             |             |
 v             v             v
arr[20]       arr[20]       arr[20]
 |             |             |
 v             v             v
 1.elem        21.elem      41.elem
 2.elem        22.elem      42.elem
 .             .            .
 .             .            .
 20.elem       40.elem      60.elem
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1699528</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699528</guid><dc:creator><![CDATA[cerotidinon]]></dc:creator><pubDate>Wed, 22 Apr 2009 08:16:57 GMT</pubDate></item></channel></rss>