Implementieren Sie ein Array verknüpfter Listen
-
21-12-2019 - |
Frage
Ich möchte ein Array verknüpfter Listen implementieren (um eine Hash-Tabelle zu implementieren).
Ich habe ganz am Anfang ein Problem...Ich habe eine Struktur verknüpfter Listen definiert und das Array verknüpfter Listen wie ein Array von Zeigern auf eine Liste initialisiert: liste * Oblist[65003];
(Muss ich es so initialisieren: liste * Oblist[65003] = {NULL};
?)
Und ich möchte die Liste beim Index 12121 erhalten (der im Moment NULL ist), also habe ich es getan
liste L = *Oblist[12121] ;
Das Programm lässt sich ohne Fehler kompilieren, aber wenn ich es ausführe, erhalte ich eine Fehlermeldung Segmentation fault (core dumped)
Hier ist der gesamte Code:
typedef struct Doublet {char * car ; struct Doublet * cdr ;}* liste ;
liste * Oblist[65003];
int main(void){
liste L = *Oblist[32123] ;
return 0;
}
Vielen Dank im Voraus ;)
Lösung
Du hast ein paar Probleme. liste
wird als Zeiger auf a typisiert struct Doublet
, so sollte es sein
liste Oblist[65003];
...
liste L = Oblist[32123];
Oder alternativ:
typedef struct Doublet { ... etc. } liste;
...
liste *Oblist[65003];
...
liste *list = Oblist[32123];