Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Problem mit Zeigern und verketteter Liste

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
08.06.2006, 19:45 Uhr
Filip



Hallo,

ich habe ein Problem bei der Implementierung einer verketten Liste.
Ich möchte auf ein übernächstes Element zugreifen.
Meine Typdefinitionen:

Code:

typedef struct
{
    char Daten[100];
    struct TStack *Next;
} TStack;

TStack *pStart = NULL;



Es wurden zwei neue Elemente in die Liste eingefügt.
Der Zugriff, der nicht funktioniert:

Code:
pStart->Next->Next;


Warum funktioniert der letzt Code- Schnipsel nicht?
Der Compiler gibt folgenden Fehler aus:
error C2037: left of 'Next' specifies undefined struct/union 'TStack'

Ich hoffe Ihr könnt mir helfen.

Viele Grüße

Filip

Dieser Post wurde am 08.06.2006 um 19:46 Uhr von Filip editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.06.2006, 21:26 Uhr
Spacelord
Hoffnungsloser Fall


Soll das denn als C oder C++ kompilieren?
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.06.2006, 06:26 Uhr
Filip



Es soll als c compiliert werden
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.06.2006, 08:55 Uhr
Tommix



'Morgen,
ich bin mir nicht 100%ig sicher, aber vermutlich "kennt" ein C-Compiler das typedef bei der deklaration von Next noch nicht. Wie auch immer, so gehts:

C++:
typedef struct stack_struct
{
    char Daten[100];
    struct stack_struct *Next;
} TStack;

TStack *pStart = NULL;


Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
09.06.2006, 09:02 Uhr
ao

(Operator)



C++:
typedef struct _tstack
{
    char Daten[100];
    struct _tstack *Next; // <---- XXXXXXXXXXXXX
} TStack;



So gehts besser, glaub ich.

Die mit XXXXXXX markierte Zeile ist das Problem. In deiner Version wird hier ein Pointer auf die Struktur TStack deklariert. An dieser Stelle ist die Definition von TStack aber noch gar nicht bekannt - das Wort TStack taucht erst eine Zeile später auf. Abhilfe: Den "Hilfstyp" _tstack direkt hinterm struct einführen und zwei Zeilen später verwenden - das ist dort ein bekanntes Symbol.

Anstatt _tstack kannst du natürlich auch einen anderen Namen verwenden.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: