AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Verkettete Liste: Acces Violation

Ein Thema von Pseudemys Nelsoni · begonnen am 9. Jan 2005 · letzter Beitrag vom 10. Jan 2005
Antwort Antwort
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

Verkettete Liste: Acces Violation

  Alt 9. Jan 2005, 23:28
hi,

ich habe eine linked list geschrieben jedoch ist da "irgendwo" ein fehler, ich habe das 2zeilen-programm mal angehangen, ist sonst schwer zu erkären was ich meine, wenn jemand lust hat kann er ja mal folgendes testen:

"1" im Edit eingeben und "Ban" klicken
"2" im Edit eingeben und "Ban" klicken
"3" im Edit eingeben und "Ban" klicken
"Unban" klicken (die "3" steht noch im edit...)
dann auf "Zeigen" klicken

-> Access Violation

Nur finde ich absolut keinen Fehler.

Vielleicht seht ihr ja was
Angehängte Dateien
Dateityp: zip lists_301.zip (4,1 KB, 10x aufgerufen)
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

Re: Verkettete Liste: Acces Violation

  Alt 9. Jan 2005, 23:55
Programm habe ich nicht getestet. Denn es sieht schwer danach aus, daß daß du verkettete Listen mit Arrays verwechselst. Das sind aber 2 paar Schuhe und haben fast nichts miteinander zu tun. 8) Ein Array ist sehr starr, auch ein dynamisches. Verkettete Listen, mit denen geht alles.
Gruß
Hansa
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#3

Re: Verkettete Liste: Acces Violation

  Alt 10. Jan 2005, 01:33
Du hast vergessen Prev bzw. Next vom ersten bzw. letzten Glied zu enbtfernen.
Delphi-Quellcode:
procedure TChannelBanList.Unban(const ANickname: string);
var
   ChannelBan : PChannelBan;
begin
   if IsBanned(ANickname, ChannelBan) then
   begin
      if (ChannelBan = FChannelFirstBan) and
         (FChannelLastBan = FChannelFirstBan) then
      begin
         FChannelFirstBan := nil;
         FChannelLastBan := nil;
      end
      else if ChannelBan = FChannelFirstBan then
      begin
         FChannelFirstBan := FChannelFirstBan^.Next;
         FChannelFirstBan^.Prev := nil;
      end
      else if ChannelBan = FChannelLastBan then
      begin
         FChannelLastBan := FChannelLastBan^.Prev;
         FChannelLastBan^.Next := nil;
      end
      else
      begin
         ChannelBan^.Next^.Prev := ChannelBan^.Prev;
         ChannelBan^.Prev^.Next := ChannelBan^.Next;
      end;
      Dispose(ChannelBan);
   end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#4

Re: Verkettete Liste: Acces Violation

  Alt 10. Jan 2005, 07:59
@hansa: ich kenn den unterschied sehr gut und verstehe daher nicht was du da geschrieben hast, vielleicht schon n bisschen am bier genippt was

@robert: vielen dank , genau daran lag es
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz