Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problem mit msvcrt.dll (https://www.delphipraxis.net/180946-problem-mit-msvcrt-dll.html)

Mokus 3. Jul 2014 10:06

AW: Problem mit msvcrt.dll
 
sooo. . .

Ich gehöre eigentlich bestraft für diesen Fehler.
Habe gestern abend noch den Fehler gefunden, war aber zu Faul noch ein DP EIntrag zu schreiben ... ;)


ALT:
Delphi-Quellcode:
constructor TStadt.create(pname: string; pNachbarn: allNachbarn);
var
  I: integer;
begin

  self.Fname           := pname;
  self.Nachbarn        := pNachbarn;
  for I                := 0 to length(pNachbarn) do
    Nachbarn[I].besucht := False;
end;

NEU:
Delphi-Quellcode:
constructor TStadt.create(pname: string; pNachbarn: allNachbarn);
var
  I: integer;
begin

  self.Fname           := pname;
  self.Nachbarn        := pNachbarn;
  for I                := 0 to length(pNachbarn) - 1 do // Hier ist der Unterschied ...
    Nachbarn[I].besucht := False;
end;
Im Constructor von der Stadt wurde die Nachbarn in einem Array übergeben, ich laufe danach mit einer FOR Schleife alle Nachbarn durch und sagte ihn, das diese noch nicht besucht sind.
Hier haben wir wieder das alte Problem mit dem Index und der Anzahl bzw. Länge ...

die Länge gibt 1 zurück.
wir machen den durchlauf auf Index 0, da ist ein Wert.
dann auf index 1, hier ist aber nichts hinterlegt.
Es kamm wohl keine Out of range execption sondern er versucht wohl im Arbeitsspeicher irgendwas zu überschreiben, auf eine NIL adresse . . .

Hierbei hat er wohl auch die Instanz von der KLasse verloren . . .

Mysteriös ?!

danke an euch, für die schnelle Hilfe ;-)


besonderen dank an baumina
dank dir hab ich mir nochmal den construcotr angeschaut ^^

himitsu 3. Jul 2014 11:51

AW: Problem mit msvcrt.dll
 
Delphi-Quellcode:
for I := Low(pNachbarn) to High(pNachbarn) do // Low ist bei dynamischen arrays allerdings immer 0



Das wäre aber auch selber sofort aufgefallen, wenn du mal in den Projektoptionen die Index-Prüfung aktivierst. :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:59 Uhr.
Seite 2 von 2     12   

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