tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
712
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    SebastianII SebastianII ist offline Rookie
    Registriert seit
    May 2004
    Ort
    Erfurt
    Beiträge
    8
    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 :
    1
    
    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!
     

  2. #2
    shiftycapone shiftycapone ist offline Rookie
    Registriert seit
    Apr 2004
    Beiträge
    6
    Hi.

    Wie sieht dein Struct aus? Welches Objekt hast Du von Struct erzeugt (Name)? Und welchen Typ hat: temp_knoten?
     

  3. #3
    Thomas Kuse Thomas Kuse ist offline Mitglied Rubin
    Registriert seit
    Aug 2001
    Beiträge
    1.411
    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 :
    1
    2
    
    struct Liste* temp_knoten=NULL;
    temp_knoten=(struct Liste*)malloc(sizeof(struct Liste));
     

  4. #4
    SebastianII SebastianII ist offline Rookie
    Registriert seit
    May 2004
    Ort
    Erfurt
    Beiträge
    8
    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 :
    1
    
    temp_knoten=malloc(sizeof(struct Liste));

    einfach:

    Code :
    1
    
    temp_knoten=new Liste;
    MfG

    Sebastian
     

  5. #5
    Thomas Kuse Thomas Kuse ist offline Mitglied Rubin
    Registriert seit
    Aug 2001
    Beiträge
    1.411
    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
     

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 01.09.10, 12:07
  2. Mit verketteten Listen Instanzen verwalten
    Von Theranium im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 10.11.07, 12:21
  3. Frage zum Thema Listen in Flash
    Von Dagobert im Forum Flash Plattform
    Antworten: 5
    Letzter Beitrag: 01.01.07, 18:44
  4. frage zu listen
    Von griesgramius im Forum Visual Basic 6.0
    Antworten: 0
    Letzter Beitrag: 23.10.06, 14:10
  5. CSS-Frage zu Listen
    Von Bencher im Forum CSS
    Antworten: 6
    Letzter Beitrag: 29.04.06, 22:31