Linked List Bug

Hallo,

ich spiele grade ein bisschen mit C++ rum und versuche eine einfach verkettete Liste zu implementieren. Sollte eigentlich kein Problem sein, da ich das in Java schon mehrfach getan hab, aber in C++ will es nicht funzen :frowning: Folgenden Code habe ich:

include

class ListElement
{
private:
ListElement *next;
int data;

public:
ListElement(int d)
{
next = NULL; data = d;
};

int getData(){ return data;};
void setNext(ListElement el) {next = âȘ™};
ListElement* getNext() {return next;};
};

void main()
{
ListElement a(1);
ListElement b(42);
a.setNext(b);
ListElement *tmp = a.getNext();
coutgetData()[42] und die Ausgabe mĂŒsste 42 sein. Statt dessen bekomme ich 4198415 !??!
Denke, mein Fehler liegt irgendwo bei den Zeigern, mit denen ich als bisheriger Java-Anwender noch nicht so viel Erfahrung habe.
Hoffe mir kann jemand helfen.

Gruß

Sebastian

Hallo Sebastian!

Wie Du schon sehr richtig vermutest, liegt das Problem tatsÀchlich an den Zeigern:
Bei setNext() merkst Du Dir die Adresse des Übergabeparameters (!) el, aber am Ende von setNext fĂ€llt der aus dem Scope heraus und ist nicht mehr gĂŒltig.
Mach’ einfach ein
void setNext(ListElement *el) { next = el; }
daraus und dann funktioniert’s.

Gruß,
Martin

[Bei dieser Antwort wurde das Vollzitat nachtrÀglich automatisiert entfernt]

Danke, das war’s :smile: