EueRolando
Cadet 2nd Year
- Registriert
- Aug. 2014
- Beiträge
- 29
Hallo ComputerBase'ler,
ich bin grade dabei eine Aufgabe zu lösen. Ich soll eine einfach verkettete Liste erstellen. Ich habe mit meinen bisherigen c++ Kenntnissen das folgende zusammengeschustert und dabei Ausgaben und Kommentare der Übersichtlichkeit halber für euch entfernt:
und sBuchEintrag sieht so aus:
mekern tut er bei Zeile 9 in dieser Anweisung will ich, dass der Zeiger next (eine Komponente von sBuchEintrag) des aktuellen Elements (Position i) auf das folgende neu erstellte Element zeigt.
Nun meine Frage: Ist dies in dieser Form möglich? Wenn ja wo ist mein Fehler? Und vor allem: Gibt es Gründe es anders zu machen? (habe schon viele andere Beispiele im Internet gefunden will aber meinen Fehler verstehen)
Liebe Grüße
EueRolando
ich bin grade dabei eine Aufgabe zu lösen. Ich soll eine einfach verkettete Liste erstellen. Ich habe mit meinen bisherigen c++ Kenntnissen das folgende zusammengeschustert und dabei Ausgaben und Kommentare der Übersichtlichkeit halber für euch entfernt:
Code:
void ArtC(){
sBuchEintrag *artc=NULL; //dieser Zeiger wird benötigt, um später auf den Anfang der Liste zu zeigen
int anzahleinträge=0; //wird wieder benötigt um das Array zu erstellen
std::cin>>anzahleinträge;
for(int i=0; i<anzahleinträge; i++){
if(i=0) {artc=new sBuchEintrag;} //der erste Eintrag kann unter dem Zeiger artc angesprochen werden
artc[i].next = new sBuchEintrag;
std::cout<<"Eintrag"<<i+2<<"wurde erstellt.\n";
}
}
und sBuchEintrag sieht so aus:
Code:
struct sBuchEintrag{
sBuchEintrag *next(NULL); //Um Fehler zu vermeiden wird der Zeiger next mittels Initialisierungsliste mit NULL initialisiert
char author[50];
char titel[50];
char isbn[50];
unsigned short bibliotheksnr;
unsigned int kaufdatum;
};
mekern tut er bei Zeile 9 in dieser Anweisung will ich, dass der Zeiger next (eine Komponente von sBuchEintrag) des aktuellen Elements (Position i) auf das folgende neu erstellte Element zeigt.
Nun meine Frage: Ist dies in dieser Form möglich? Wenn ja wo ist mein Fehler? Und vor allem: Gibt es Gründe es anders zu machen? (habe schon viele andere Beispiele im Internet gefunden will aber meinen Fehler verstehen)
Liebe Grüße
EueRolando