Hallo, für eine verkettete Liste in C brauche ich so etwas:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
Lässt sich so was überhaupt realisieren? Gruß und Danke schonmal im Voraus für hilfreiche Antworten Bernhard
|
Anzeige
|
Struct mit Zeiger auf seinen eigenen DatentypHallo, für eine verkettete Liste in C brauche ich so etwas:
Lässt sich so was überhaupt realisieren? Gruß und Danke schonmal im Voraus für hilfreiche Antworten Bernhard
Gast
#2198197
Hallo Bernhard, sicher geht das. Du deklariertst zwei Zeiger auf Speicheradressen, an denen sich wiederum eine Instanz des Typs "Element" befindet. Die beiden *Next und *Previous zeigen nicht! auf die Definition deines structs - nicht verwechseln. Grüße Andreas Bernhard N. schrieb: > Hallo, > > für eine verkettete Liste in C brauche ich so etwas: > >
> > > Lässt sich so was überhaupt realisieren? Natürlich > Gruß und Danke schonmal im Voraus für hilfreiche Antworten trenne dich von anonymen Strukturen und dein Problem löst sich in Luft auf.
So mancher empfindet das gleichzeitige Definieren eines typedefs auf etwas das selbst gerade definiert wird sowieso als Unsitte. Diejenigen, die noch niemals ein C-Buch durchgearbeitet haben, meinen sogar das müsse so sein und sind sich gar nicht bewusst, dass ihnen hier C erlaubt 2 Dinge in einem Aufwasch zu machen.
Nebenbei, was durchaus auch geht:
D. h. eine tatsächliche Definition von struct Element ist weit und breit nicht in Sicht, trotzdem darf man einen Zeiger auf selbige bilden und benutzen.
Gast
#2198352
Jörg Wunsch schrieb: > Nebenbei, was durchaus auch geht: > >
> > D. h. eine tatsächliche Definition von struct Element ist weit und > breit nicht in Sicht, trotzdem darf man einen Zeiger auf selbige > bilden und benutzen. ...weil in C alle Zeiger gleich groß sind - oder? gagast schrieb: > Jörg Wunsch schrieb: >> Nebenbei, was durchaus auch geht: >> >>
>> >> D. h. eine tatsächliche Definition von struct Element ist weit und >> breit nicht in Sicht, trotzdem darf man einen Zeiger auf selbige >> bilden und benutzen. > > ...weil in C alle Zeiger gleich groß sind - oder? Jein :-) Genau genommen gilt das nur für Datenzeiger. Zeiger auf Funktionen sind wieder eine eigene Kategorie. Aber dann weiß der Compiler aber auch, dass es sich um einen Funktionszeiger handelt. So gesehen kann man also 'Ja' sagen. Der Compiler weiß immer wie groß ein Zeiger ist und wieviel Platz er daher reservieren muss. Die genau Strukturdefinition wird erst dann benötigt, wenn tatsächlich über den Zeiger auf die dahinterliegenden Daten zugegriffen werden soll. Vielen Dank für die zahlreichen Antworten. Nachdem ich das schrieb ist mir das auch mit den anonymen typedefs klargeworden und werde mich davon aus Stilgründen auch verabschieden. Gruß Bernhard
Gast
#2202621
Karl Heinz Buchegger schrieb: > gagast schrieb: >> ...weil in C alle Zeiger gleich groß sind - oder? > > Jein :-) > Genau genommen gilt das nur für Datenzeiger. Zeiger auf Funktionen sind > wieder eine eigene Kategorie. Aber dann weiß der Compiler aber auch, > dass es sich um einen Funktionszeiger handelt. So gesehen kann man also > 'Ja' sagen. Der Compiler weiß immer wie groß ein Zeiger ist und wieviel > Platz er daher reservieren muss. Die genau Strukturdefinition wird erst > dann benötigt, wenn tatsächlich über den Zeiger auf die > dahinterliegenden Daten zugegriffen werden soll. OK, die Funktionszeiger hatte ich jetzt vergessen, brauche ich so selten. Danke für die Bestätigung, vielleicht verstehe ich diese Sprache ja doch noch. :-) Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|