zugriffsverletzung bei adresse 004512F2
ich hab bei starten meines programms eine mir unbekannte fehlermeldung erhalten. kann mir jemand weiterhelfen?
Edit SirThornberry (Entfernung des Screenshot): Fehlermeldung: Zugriffsverletzung bei Adresse 004512F2 beim schreiben von Adresse FFFFFFFF [edit=SirThornberry]verlinkten Screenshot entfernt da unnötig - Mfg, SirThornberry[/edit] |
Re: fehlermeldung
Da wirst du wohl einen fehler in deinem Code haben. Hast du irgendwelchen Code im OnCreat/OnShow deines Hauptformulares und wenn ja wäre gut wenn du ihne posten könntest. Eine Glaskugel hat ihre Vorhersagen für heute schon durchgeführt.
Übrigens: Den Text von Fehlermeldungen bekommt man mit <Strg> + C in die Zwischenablage. Ebenfalls würde es reichen nur die meldung als Bild zur verfügung zu stellen und nicht den ganzen Bildschirminhalt. |
Re: fehlermeldung
1. Herzlich Willkommen in der Dp :dp:
2. Bitte gebe dem Thread einen aussagekräftigen Titel, Fehlermeldung sagt nicht viel aus 3. Müssen wir den Quelltext sehen, denn eine Zugriffsverletzung sagt nicht so viel aus. |
Re: fehlermeldung
sry...
@ Bernhard:ich hab in FormCreate nur randomize. der fehler liegt wahrscheinlich hier:
Delphi-Quellcode:
procedure TForm1.QuickSort(l,r:Integer);
var i,j,Merke,Mitte: Integer; begin i:= L; j:= R; Mitte:= Wert[(L+R)div 2]; //vergleich while Wert[i]< Mitte do begin inc (i); counter_Vergleich:=counter_Vergleich+1; end; while Wert[j] > Mitte do begin dec (j); counter_Vergleich:=counter_Vergleich+1; end; //tauschen if i<=j then repeat begin Merke:=Wert[i]; Wert[i]:= Wert[j]; Wert[j]:= Merke; inc (i); dec (j); end; until i > j; //Rekursion if L < j then Quicksort(L,j); if i < R then Quicksort(i,R) else break; |
Re: zugriffsverletzung bei adresse 004512F2
schon geschaut, dass nirgendwo über die array grenzen von "Wert" geschrieben wird?
|
Re: zugriffsverletzung bei adresse 004512F2
schon mal dein Programm mit F8 gestartet?
Damit kannst du dein Programm schritt für schritt durchgehen bis der fehler auftretet ... sowas nennt man debuggen ... dafür ist ein debugger da :roll: |
Re: zugriffsverletzung bei adresse 004512F2
der wichtige Teil hat sich im schlecht erkennbaren Screenshot versteckt. Die Adresse an welcher der Fehler auftritt ist von Programm zu Programm verschieden je nach dem welcher Stelle im Speicher der Code steht bei dem der Fehler kommt. Wichtiger ist die Adresse auf die Zugegriffen wurde und das wie. Die Antwort lautet schreiben auf FFFFFF
Du versuchst an eine Adresse im Speicher zu schreiben die deinem Programm wohl niemals zugewiesen werden wird. |
Re: zugriffsverletzung bei adresse 004512F2
@jmd anders: ist eigentlich nicht möglich, da L und R die grenzen sind.
@ gsh: danke für den tipp, das probier ich mal. @ SirThornberry: und wie kann ich das beheben? |
Re: zugriffsverletzung bei adresse 004512F2
Du würdest den Helfern schon sehr Helfen bei der Suche nach deinem Fehler wenn du die Quelltextzeile posten könntest in der genannter Fehler auftritt
|
Re: zugriffsverletzung bei adresse 004512F2
Ich polier mal meine Kristallkugel:
Delphi-Quellcode:
-> Entweder du hast den begin .. end Block falsch gemacht oder er ist überflüssig. Und warum tauscht du, wenn beide Werte sowieso gleich sind? Glaub aber nicht, dass die Zugriffsverletzung dort liegt, macht eigentlich keinen Sinn.
if i<=j then
repeat begin Merke:=Wert[i]; Wert[i]:= Wert[j]; Wert[j]:= Merke; inc (i); dec (j); end; until i > j; [Edit]Außerdem aus welcher Schleife soll das break am Ende raus? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:02 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