![]() |
Re: Liste mit Zeigern
ok
wieso heist es dan in dem fall nicht anker.naechster? anker ist vom typ pzeiger. normal ist es doch der teil hinter dem punkt also ".naechster" der irgendwohin zeigt. anker:=pak da wird ja noch der Stringteil mitübergeben, oder etwa nicht? weiter unten hat Klaus ja list^.naechster:=dummy geschrieben. Wieso geht dann hier nicht anker^.naechster:=pak? |
Re: Liste mit Zeigern
Weil das ein Zeiger auf den Nachfolger des Elements (also das 2. Element ist)
Zitat:
Zitat:
|
Re: Liste mit Zeigern
also ist anker einfach ein zeiger auf das erste element der liste. sprich den ersten datensatz an dea der zeiger auf das nächste element verknüpft ist.
Dann habe ich da wohl was falsch verstanden. jetzt ist mir auch klar warum ich immer solche dubiosen Fehlermeldungen hatte. Ich dachte immer ich muss anker^.z was zuordnen, wie jedem späteren Listenelement. Da programmiert man 2 Doppelstunden und fragt sich warum das nicht geht. Naja danke an alle. Ich denke mit dem wissen sollte es mit ein wenig übung schon funktionieren. :thumb: :hi: |
Re: Liste mit Zeigern
Zitat:
wenn es bereits Listenelemente gibt. Der Anker wird beim ersten Element festgelegt. Und wenn das letzte Element aus der Liste gelöscht wurde, wird Anker wieder auf nil gesetzt. Wenn ich die while Schleife mit Anker gemacht hätte, wäre die Adresse von Anker verändert worden und der Listenanfang wäre den Bach hinunter gegangen - die Folge davon sind dann sogenannte Speicherlecks. Grüße Klaus |
Re: Liste mit Zeigern
Nr. 1: solltest du deine proceduren/methoden mal benennen, damit man weiss was sich bspw. hinter button1 verbirgt.
Nr. 2: anlegen von knoten geht wie folgt: NewNode := Node.create; if anker = NULL then Anker.next := NewNode else begin While anker.next <> NIL then ANKER := ANKER.next; ANKER.next := newNode; end; Nr. 3: Löschen geht wie folgt: temp:= Anker; While ANKER.Next <> NIL do begin Temp := Anker; ANKER := AnKER.next; free(temp); Temp := Anker; end; if temp <> NIL then free(anker) Nr. 3: Traversieren; Tmp := Anker.next; While tmp <> NIL and not tmp.content <> content do tmp := tmp.next; ansonsten, machst du es deinem PC klar, was du von ihm willst, indem du es ihm kleinigkeit für kleinigkeit erklärst :-) <HTH> |
Re: Liste mit Zeigern
[quote="Klaus01"]Ich habe da eine gesonderte Variable genommen, weil das Ankerelement nicht mehr verändert werden sollte/quote]
Anmerkung: der anker darf nicht mehr verändert werden, ausser die liste ist aufgelöst. ansonsten ist der anker untouchable. <HTH> |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz