Autor Thema: Verkette Listen mit verketteten Listen mit verketteten Listen  (Gelesen 6382 mal)

DerHartmut

  • Beiträge: 236
    • Profil anzeigen
    • Mein Blog
Gespeichert
Hallo zusammen,

ich habe folgendes Problem, bei welchem ich partout keine Lösung finde (wahrscheinlich, weil ich mich zu sehr hereingedacht habe):

Folgenden Code habe ich geschrieben:

typedef struct driver_node
{
    struct driver_node *prev_driver;
    struct driver_node *next_driver;
};

typedef struct device_node
{
    struct driver_node *drivers;

    struct device_node *prev_device;
    struct device_node *next_device;
};

typedef struct super_node
{
   struct device_node *devices;
};

Soweit, so gut.

Wie initialisiere ich nun alle Elemente der verketteten Liste?
Ich bin der Meinung, mit

struct super_node *mynode = (struct *super_node)malloc(sizeof(struct super_node));

ist es nicht getan. Oder doch? Sind dann alle Unterketten initialisiert? Müssen die über die Struct seperat allokiert werden? Oder mache ich hier generell grobe Denkfehler und das Design an sich ist Mist?

$_="krJhruaesrltre c a cnp,ohet";$_.=$1,print$2while s/(..)(.)//;
Nutze die Macht, nutze Perl ;-)

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 26. August 2010, 11:03 »
Eine leere Liste heißt wohl, dass super_node->devices == NULL ist. Insofern fehlt dir eigentlich nur die Initialisierung dieser einen struct. Wenn man den überflüssugen Cast weglässt, also:
struct super_node* my_node = calloc(1, sizeof(*my_node));
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

 

Einloggen