Frage zu verketteten Listen

SebastianII

Grünschnabel
Hallo,

ich hab gerade angefangen mich mit verkettete Listen zu beschäftigen. Doch langsam zweifle ich an mir (bzw. meinem Compiler).
Ich finde in jedem Internet Tutorial folgende Befehlszeile:

Code:
temp_knoten=malloc(sizeof(struct Liste));

Doch mein Compiler gibt mir Folgende Fehlermeldung:

Listen.cpp(26) : error C2440: '=' : 'void *' kann nicht in 'struct Liste *' konvertiert werden Konvertierung von 'void*' in Zeiger auf nicht-'void' erfordert eine explizite Typumwandlung

Was ist an dieser Zeile falsch bzw. liegt es an mir?

Ich wäre für eine Antwort sehr dankbar!

P.S.: Wenn Ihr den kompletten Quelltext benötigt, dann sagt bescheid...ich schreib ihn dann sofort hier rein!
 
Da fehlt eindeutig das Typecast für den resultierenden Zeiger, da ANSI C nicht einfach Zeiger vom Typ void* mit einem anderen Zeiger speichern kann.

Code:
struct Liste* temp_knoten=NULL;
temp_knoten=(struct Liste*)malloc(sizeof(struct Liste));
 
Hab nun selbst eine Lösung gefunden!
Trotzdem vielen Dank für die Antworten!

Ich würde allen empfehlen es über "new" zu machen, malloc ist noch ein überrest aus C und führte bei mir nur zu Problemem:

also statt:


Code:
temp_knoten=malloc(sizeof(struct Liste));

einfach:

Code:
temp_knoten=new Liste;
MfG

Sebastian
 
Ja natürlich ist malloc noch Bestandteil von ANSI C.
Also bitte nächstes Mal besser die Programmiersprache oben C++ im Betreff mit angeben, so erkennt das dann jeder.
Steht glaub ich auch irgendwo bei uns in der Netiquette, dass das ganz vorteilhaft ist :p
 
Zurück