Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#8

AW: Konversion von dezimal zu binär

  Alt 31. Mai 2012, 17:24
Zitat:
'Range check error'
Siehst du ... das war jetzt die aktivierte Bereichsprüfung.
Ein "Fehler in der Bereichsprüfung" ist doch viel verständlicher, als eine wilde "Zugriffsverletzung", welche je nach Position und Art des Zugriffs manchmal garnicht erkannt wird oder sich sonstwie auswirkt.


- es werden zufällig an dieser Stelle gefunde Daten gelesen ... welche von anderen Variablen
- es exisitert an dieser Stelle nix oder es ist schreibgeschützt (bei einem Schreibzugriff) = Zugriffsverletzung
- man weist der Variable was zu, an dieser Stelle existiert was Fremdes (andere Variable), dadurch wird dieses überschrieben ... und dann kann später (auch erst viel später) das Programm sonstwie reagieren, jenachdem was dort überschrieben wurde.



Und wenn man dazu noch den Debugger verwendet, dann sagt einem Delphi sogar die Fehlerstelle, welche in deinem Fall zuerst square[i]:=1; sein wird, weil das Array viel zu klein ist, da du verggessen hast die Größe zu setzen.




[OH]Wie soll ich das verstehen spätestens die Größe anzupassen wenn man es benutzt? Kann ich eine variable mitten im Programm anders deklarieren?[/OH]
Nein, das hat auch niemand gesagt.

SetLength ändert die Größe des "dynamischen" Arrays, welches du in der Variable "square" deklariert hast.
> "dynamisch änderbar", also zur Laufzeit über Delphi-Referenz durchsuchenSetLength


PS: Strg+C in Fehlerdialogen = Kopieren der Fehlermeldung
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat