pointer mit new auf struct erstellen?



  • Hey CCs,

    Ich hab ein Problem mit einem Pointer.
    Erstmal der code:

    typedef
       struct {
          int inhalt;
          int *zeiger;
       } tle, *ple;
    
       ple anker;
    
    ple einfuegen(int zeug)
    {
        ple *h = new ple;
        (*h).inhalt = zeug;
        (*h).zeiger = anker;
        return = h;
    }
    

    das Problem ist die Zeile:

    ple *h = new ple;
    

    der sagt mir immer:

    error C2228: Links von ".inhalt" muss sich eine Klasse/Struktur/Union befinden
    

    was mach ich denn falsch?
    Ich hab noch nicht so viel Ahnung von c++ 😃 und weiß nicht wie ich das mit dem new machen soll und hab ein Blatt verlegt wo das drauf stand 🙄

    Ich danke im vorraus

    MfG
    Chefx



  • Vermeide typedef s für einfache Zeiger. Das Warum beantwortet sich, wenn Du Dir deinen Code nochmal ansiehst. Dort taucht mehrfach ple auf, wo tle hätte stehen müssen.

    Lass typedef ganz weg. Du bist hier nicht unter C, sondern C++. In C++ benötigt man kein extra typedef für struct s. Eine struct -Deklaration führt schon einen echten Typ ein.

    struct list_element {
       int inhalt;
       list_element* zeiger;
    };
    
    list_element* anker;
    
    void einfuegen(int zeug)
    {
        list_element* h = new list_element;
        h->inhalt = zeug;
        h->zeiger = anker;
        anker = h;
    }
    

    (ungetestet)

    Kann es sein, dass Du Dir einfach Tutorials minderer Qualität rausgesucht hast? Tipp: Verwende ein gutes Buch. Es lohnt sich.



  • danke für die Antwort.

    werde mich mal nach ein Buch umschauen. 😉
    bin eigentlich ein Delphi-Programmierer und C++ ist
    halt kein delphi 😃

    MfG


Anmelden zum Antworten