Typedef auf Pointer



  • Guten Tag!

    Ich bekomme den folgenden Fehler:

    error C2275: 'nodeptr': Ungültige Verwendung dieses Typs als Ausdruck
    1>          Siehe Deklaration von 'nodeptr'
    

    Hier die zugehörige Deklaration

    typedef struct node {
    	Partei* data;
    	struct node* next;
    } Node, *nodeptr;
    

    Und hier die Stelle wo der Fehler auftaucht:

    int isIn(char name[], List l)
    {
    	if(isEmpty(l)){
            return 0;
        }
    
    	nodeptr noPtr = l.first; // Auf diese Zeile verweist der Fehler
    
    	while(noPtr->next != NULL) {                    
            if(equal(noPtr->data->name, name) == 1)    
                return 1;                           
        }
    
        return 0;
    }
    

    Der Code für die struct wurde durch eine Übungsaufgabe vorgegeben, deshalb denke ich es das es stimmen sollte, allerdings scheint das Visual Studio es besser zu wissen^^

    Würde mich sehr über Hilfe beim Fehler finden freuen 🙂

    Viele Grüße,
    Phillip Vaßen



  • Habs doch noch selbst raus bekommen...
    dummer Formfehler:

    nodeptr noPtr = l.first;
    

    muss am Anfang der Funktion ausgeführt werden, dann funktionierts.



  • Wenn es sich um C-Code handelt, und du ihn nicht im C-Forum postest (sondern so wie hier z.B. im MFC Forum), dann solltest du es das nächste mal vielleicht dazuschreiben.

    Dann hätte dir auch schnell jmd. sagen können, dass Variablen in C nur am Anfang eines Scopes deklariert werden können.

    Mit C++ könntest du deinen Code nämlich ohne Fehler übersetzen. Und etwas was sowohl C als auch C++ sein kann, wird hier i.A. als C++ interpretiert.


Anmelden zum Antworten