Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Access violation nach "end;"

  Alt 2. Nov 2010, 14:38
Im abschließenden End; einer Funktion werden die lokalen Variablen freigegeben.
Es steht hier also quasi Folgendes in deinem End; drin.
Delphi-Quellcode:
Ding := '';
Ergebnis_dereferenziert := '';
Und wenn es da zu einem Fehler kommt, dann hast du diese Strings wohl "zerstört", denn bei defekten Strings muß es ja zu Problemen kommen.


Weißt du eigentlich was Delphi-Referenz durchsuchenStringToWideChar macht?
> dieses kopiert bis zu 20 Zeichen von "Ding" in den Speicherbereich von "Ergebnis"
> und du hast für "Ergebnis" keinen Speicher reserviert,
womit du, da "Ergebnis" nicht initialisiert ist und somit einen "willkürlich" rumzeigenden Pointer darstellt, wild in den Speicher deiner Anwendung reinschreibst und womöglich etwas Wichtiges überschreibst ... hier also zufällig die tempörären Strings, die Rücksprungadresse oder etwas anderes, welches danach ausgeführt werden soll.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 2. Nov 2010 um 14:44 Uhr)
  Mit Zitat antworten Zitat