AGB  ·  Datenschutz  ·  Impressum  







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

Objekt an verketteter Liste hinzufügen.

Ein Thema von Pseudemys Nelsoni · begonnen am 7. Jun 2005 · letzter Beitrag vom 7. Jun 2005
Antwort Antwort
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

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

Objekt an verketteter Liste hinzufügen.

  Alt 7. Jun 2005, 14:20
Moin,

ich versuche ein Objekt einer verketteten Liste so anzuhängen:

Delphi-Quellcode:
function TChannels.NewChannel(const ChannelName: string): TChannel;
var
  Channel: TChannel;
begin
  Result := TChannel.Create;
  if FChannelNode = nil then
    FChannelNode := Result
  else
  begin
    Channel := FChannelNode;
    while Channel.FNextChannel <> nil do
      Channel := Channel.FNextChannel;
    Channel.FNextChannel := Result;
    Result.FName := ChannelName;
  end;
end;
Nur gibts dort eine AV und der Pfeil zeigt auf das erste "if".... Weiss jemand was da falsch sein soll? Scheint mir alles richtig
Mario
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.610 Beiträge
 
#2

Re: Objekt an verketteter Liste hinzufügen.

  Alt 7. Jun 2005, 14:35
Was steht denn in FChannelNode am Anfang drin? Bist Du überhaupt auf dem richtigen Objekt?
Vielleicht ist FChannelNode ja gar nicht nil, verweist aber auf einen Bereich im Speicher der nicht mehr allokiert ist? Das wäre jetzt so der erste Punkt wo ich weitersuchen würde.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Objekt an verketteter Liste hinzufügen.

  Alt 7. Jun 2005, 14:40
Ich würde eher sagen, dass der fehler eine zeile höher liegt im constructor des channels:
Result := TChannel.Create; <-- da denn delphi ist manchmal mental schon ein bisschen weiter als der code ...Oder Self selbst ist ungültig.
mâxîmôv.

{KDT}
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.610 Beiträge
 
#4

Re: Objekt an verketteter Liste hinzufügen.

  Alt 7. Jun 2005, 14:51
Zitat von maximov:
Oder Self selbst ist ungültig.
Stimmt, deswegen habe ich ja auch gefragt, ob er überhaupt auf dem richtigen Objekt arbeitet.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#5

Re: Objekt an verketteter Liste hinzufügen.

  Alt 7. Jun 2005, 14:55
Der constructor scheint der einzige ort zu sein an dem es knallen kann.
Ich gehe einfach mal davon aus, dass Pseudo die Liste erzeugt hat, bevor er ihr Items anhängen will

btw: Ich würde dir empfehlen Head und Tail zu pflegen. Wenn du für jedes Anfügen erst das Ende suchen musst...
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

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

Re: Objekt an verketteter Liste hinzufügen.

  Alt 7. Jun 2005, 15:53
Moin Phoenix,

Zitat:
Was steht denn in FChannelNode am Anfang drin?
Nichts, d.h "nil". FChannelNode ist der Beginn der Kette.

Zitat:
Vielleicht ist FChannelNode ja gar nicht nil, verweist aber auf einen Bereich im Speicher der nicht mehr allokiert ist?
Nope, kann nicht sein, da FChannelNode 100% nil ist (ist als Feld im Objekt "TChannels").

Moin maximov,

Zitat:
Ich würde eher sagen, dass der fehler eine zeile höher liegt im constructor des channels:
? Der sieht doch goldrichtig aus. Das dürfte keine Probleme machen.

Zitat:
Oder Self selbst ist ungültig.
Daran lags, FChannels(Das Objekt der liste) war gar nicht erzeugt


Danke allen^^
Mario
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#7

Re: Objekt an verketteter Liste hinzufügen.

  Alt 7. Jun 2005, 17:55
Zitat von Pseudemys Nelsoni:
Zitat:
Oder Self selbst ist ungültig.
Daran lags, FChannels(Das Objekt der liste) war gar nicht erzeugt
Schön... Endlich mal was mit dem ich dich beim nächsten Mal aufziehen kann.
  Mit Zitat antworten Zitat
7. Jun 2005, 17:55
Dieses Thema wurde von "alcaeus" von "Sonstige Fragen zu Delphi" nach "Object-Pascal / Delphi-Language" verschoben.
Ist ein Problem mit der Delphi-Language
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 23:06 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