AGB  ·  Datenschutz  ·  Impressum  







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

Dyn. Array führt zu Absturz

Ein Thema von Scharfrichter · begonnen am 6. Mär 2006 · letzter Beitrag vom 6. Mär 2006
Antwort Antwort
Scharfrichter

Registriert seit: 24. Nov 2004
21 Beiträge
 
Delphi 7 Personal
 
#1

Dyn. Array führt zu Absturz

  Alt 6. Mär 2006, 17:03
Nabend,

ich arbeite gerade an einem kleinen Sortierungsprogramm und wie Sortierungen das so an sich haben, brauch ich dafür ein Array. Daher hab ich mir also ein dyn. Array aufgzogen
feld: array of integer;

in diesem array werden zahlen gespeichert die hinter sortiert werden sollen. und dieses array macht zicken sobald man das programm beenden will. sobald man das array mit irgendwelchen zahlen befüllt, ist ein fehler am programmende vorprogramiert. dass soll so viel heissen, dass ich dass array zur laufzeit mit so vielen zahlen von oben bis unten zu pumpen kann und auch ganz normal damit hantieren kann, nur zu dem zeitpunkt wo ich das programm beende kommt halt ein fehler. Delphi stellt eine "exception der klasse EInvalidPointer" fest, ich bekomm dann noch zwei weiter Messagen die mir auch nochmal sagen das eine ungültige zeigeroperation festgestellt wurde und das programm stürzt, obwohl es ja eigentlich schon beendet wurden. dass hat zwar zur laufzeit absolut keinen effekt, es sieht aber einfach nur verdammt scheisse aus wenn man so nen dicken fehler bekommt wenn man das programm gerade beendet. für den fall das ich mein programm aber starte und das array aber nicht befülle und irgendwelche anderen sachen teste, bekomm ich keinen abbruch, erst zu dem zeitpunkt wo das array einmal befüllt wurde.
daher meine frage, was muss ich machen damit mir dieser fehler nicht mehr passiert?!
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Dyn. Array führt zu Absturz

  Alt 6. Mär 2006, 17:09
Du musst das Array korrekt dimensionieren. Und damit du hinterher auch nicht auf verbotenen Pfaden wandelst mache es so:

Delphi-Quellcode:
var
  feld: array of Integer;
  i: Integer;
begin
  SetLength(feld, 20);
  for i := Low(feld) to High(feld) do
    feld[i] := Random(1000);
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
markusj

Registriert seit: 9. Dez 2005
Ort: Kandel
408 Beiträge
 
#3

Re: Dyn. Array führt zu Absturz

  Alt 6. Mär 2006, 17:10
Hast du das Aray mit Finalize aufgeräumt?
Ansonsten, greifst du beim beenden auf einen Wert ausserhalb der Definition zu?
Wenn du mit setlength einen Wert von 5 festlegst, ist der Zugriffsbereich ja shcließlich zwischen 0 und 4 definiert ... bei Schleifen macht man da gerne Fehler.

mfG

Markus
Markus
  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 21:00 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