verkettete Liste



  • Hallo,
    ich habe in ein C Programm Funktionen für eine Verkettete List implementiert.
    Die Funktionen sind in der *cpp Datei ausprogrammiert, in der *.h Datei
    ist der Struct für die Liste definiert und die Funktionen bekanntgemacht.

    in der *h Datei steht zb

    void InsertList(struct ProcInfo *& base,int index,char *name,int mem);
    

    Leider hat der compiler ( Visual C++ 6) ein Problem

    error C2143: Syntaxfehler : Fehlendes ')' vor '&'
    error C2143: Syntaxfehler : Fehlendes '{' vor '&'
    error C2059: Syntaxfehler : '&'
    error C2059: Syntaxfehler : ')'

    Alle vier Fehlermeldungen verweisen auf die oben angegebene Zeile.

    ändere oich die Funktion ohne &

    void InsertList(struct ProcInfo * base,int index,char *name,int mem);
    

    kommt die Fehlermeldung nicht mehr, allerdings macht die Funkiton dann auch nicht mehr was sie soll.

    Vielen Dank

    Chris



  • Was ist denn ein *& ? 😕
    Ich kenne nur & oder *. (Okay, ** usw auch noch...)



  • C kannte noch keine Referenzen (&), also mußt du da mit Doppel-Zeigern arbeiten, wenn du deine Parameter "per Referenz" übergeben und verarbeiten willst:

    void InsertList(struct ProcInfo ** base,int index,char *name,int mem);
    //um auf die Daten der Liste zuzugreifen, mußt du base jeweils dereferenzieren
    

  • Mod

    estartu schrieb:

    Was ist denn ein *& ? 😕
    Ich kenne nur & oder *. (Okay, ** usw auch noch...)

    struct ProcInfo *&base; wäre dann eine Referenz auf einen Zeiger.

    Im Endeffekt kommt es einem struct ProcInfo **base; nahe.
    Erleichert aber den Syntax. Das Zeichen & für Referenz bindet direkt an die Variable.

    Man kann dadurch also einen Zeiger auf ProcInfo zurückgeben an base!



  • Ahja, okay dankeschön. 🙂



  • danke auch 🙂


Anmelden zum Antworten