![]() |
ein item einer verketteten liste hinzufügen
hoi,
ich versuche mit folgendem ein item in meine verkettete liste hinzuzufügen:
Delphi-Quellcode:
procedure TServer.ClientConnect(Sender: TObject; ASocket: TCustomWinSocket);
var Temp: PUserItem; User: PUserItem; begin New(User); User^.Socket := ASocket; if FUserNode = nil then FUserNode := User else begin Temp := FUserNode; while (Temp^.next <> nil) do Temp := Temp^.next; Temp^.next := User; end; end; FUserNode ist der anker der liste. "User" das neue item. nun (ich weiss nicht ob das so ist wenn bereits ein item in der liste ist oder wenn es das erste ist) bekomme ich bei meiner while schleife eine access violation... ist an ihr irgendwas falsch? ich gehe doch nur durch bis zum letzten item und füge das neue an... bzw versuch ich das |
Re: ein item einer verketteten liste hinzufügen
Ist es beabsichtigt das du mit der Variablen "Temp" im Speicher von FUserNode rumänderst? Und warum nimmst du nicht einfach TList oder leitest davon ab, dann musst du das mit dem "Next" etc. nicht mehr machen, man muss das rad ja nicht jedes mal neu erfinden.
|
Re: ein item einer verketteten liste hinzufügen
Zitat:
|
Re: ein item einer verketteten liste hinzufügen
Zitat:
|
Re: ein item einer verketteten liste hinzufügen
Wie ist denn PUserItem deklariert ? Was ist FuserNode ? Und die Glaskugel sagt mir gerade, daß mit dem Temp und User irgendwas nicht stimmt, sie könne ohne Deklaration aber auch nichts damit anfangen. :mrgreen:
|
Re: ein item einer verketteten liste hinzufügen
wenn man weiss was verkettete listen sind, dann weiss man auch wie der typ PUserItem aussehen könnte :P :mrgreen:
Delphi-Quellcode:
PUserItem = ^TUserItem;
TUserItem = record Socket: TCustomWinSocket; Next: PUserItem; end; |
Re: ein item einer verketteten liste hinzufügen
Zitat:
|
Re: ein item einer verketteten liste hinzufügen
:mrgreen:
habs aber nun raus, ich musste beim erzeugen eines neues items den next zeiger auf NIL setzen, sollte das standardmässig nicht schon so sein? |
Re: ein item einer verketteten liste hinzufügen
Zitat:
|
Re: ein item einer verketteten liste hinzufügen
heisst das das wenn ich einen record habe der 50 membervariablen hat ich die ALLE initialisieren muss? oder reicht ein FillChar() ?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 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 by Thomas Breitkreuz