Speicherzugriffsfehler verkettete Liste (C)
-
@Mechanics Habe den Fehler gefunden. Ich musste in die append_val Funktion mit einer if-Anweisung noch den Fall abdecken, dass mein Pointer == NULL ist.
Trotzdem danke für eure Hilfe!LNode* append_val(LNode* node, unsigned char val) { LNode* temp_ptr = create_list(); if (node == NULL) { temp_ptr->value = val; temp_ptr->prev = node; } else { while(node->next != NULL) { node = node->next; } temp_ptr->value = val; temp_ptr->prev = node; node->next = temp_ptr; } return temp_ptr; }
-
Also ich hab schon verkettete Listen gebraucht.
In einem Windows-Treiber
Für wenn mehrere Einträge im selben Bucket eines Hash-Tables landen.
Dort hab ich aber auch die fertigen SDK Funktionen verwendet anstatt mir das selbst zu schreiben. Auch wenn es nur ein paar Zeilen sind.Wenn man sehr low-leveliges Zeugs macht, kann es von Vorteil sein zu wissen wie man das macht. Aber auch so ... ich denke dass es nicht schadet sowas mal verstanden zu haben. Bzw. allgemein was es so für standard Datenstrukturen gibt und wie die funktionieren. Ist mMn. auch eine gute Übung um Zeiger zu verstehen -- etwas womit der OP ja nach eigener Aussage Probleme hat.
-
@Wutz sagte in Speicherzugriffsfehler verkettete Liste (C):
@eigenartig
Ich habe auch noch nie (>30Jahre) verkettete Listen gebraucht.
...
Das liegt daran, dass die Hochschulprofessoren (und Buchautoren und Tutorialschreiberlinge) keine Ahnung von der Praxis haben und zu faul sind, sich was Praxisnahes auszudenken.Ich habe noch nie überhaupt ne Liste gebraucht. Bei mir dominieren Arrays(Vectoren) und Maps und dann noch die eine oder andere exotische Queue.
-
@It0101 sagte in Speicherzugriffsfehler verkettete Liste (C):
Ich habe noch nie überhaupt ne Liste gebraucht.
Dann taugt dein Pointer auch nix.
-
@eigenartig care to elaborate? ya talkin bullshit man.
Nebenbei: Viel in der Win32-API ist über verkettete Listen gelöst. Selber eine schreiben ... weiß nich. Vielleicht? Wenns was bringt? Aber
Rocket-ScienceAtomic Physics ist das jetzt auch nicht.
-
Nukular, das Wort heisst nukular!
-
Dieser Beitrag wurde gelöscht!
-
Ich dachte, dass hätte mit Atomics zu tun!
Edit: ich bin außerdem sehr kluk. K-L-U-K!
-
@hustbaer sagte in Speicherzugriffsfehler verkettete Liste (C):
Nukular, das Wort heisst nukular!
Macht nichts. Ist eine Liste auch nicht. ^^
-
@eigenartig sagte in Speicherzugriffsfehler verkettete Liste (C):
@It0101 sagte in Speicherzugriffsfehler verkettete Liste (C):
Ich habe noch nie überhaupt ne Liste gebraucht.
Dann taugt dein Pointer auch nix.
Was willst du mir sagen? Mein Pointer ist sehr lang und sehr dick!
-
@Fasterlong
Du solltest den Umgang mit einem Debugger lernen. Der wird dir nämlich die genaue Zeile zeigen können, die den Fehler auslöst. Dann musst du nur noch lernen, wie Pointer funktionieren und den beheben.Und fürs Protokoll, ich hab auch schon verkette Listen gebraucht. Das Konzept sollte man zumindest kennen und verstehen. Ich sehe aber auch das viele das vermutlich nie umsetzen müssen und man das dann immer noch im Detail nachlesen kann.
-
Ja damit meinte ich, dass vorherige Pointer ungültig werden, sobald man einen Vektor vergrößert oder verkleinert.
Da könnte eine verkettete Liste in Frage kommen, wenn man ewig wehrende Iteratoren / Pointer braucht.
-
Tja, die Pointer wehren sich halt (gegen ihre Benutzung).
Du meintest wohl "ewig währende"...
-
Also benutzt bei der Programmierung habe ich eine verkette Liste auch noch nicht.
Aber in einer meiner Vorlesungen, die ich aktuell habe "Betriebssysteme" lautet die Antwort auf die Frage "Wie realisiere ich ..." zu 90% verkettete Liste.
Naja oder zumindest ist verkettete Liste immer eine mögliche Option zum realisieren, die beste ist es meistens nicht