![]() |
EInvalid Pointer - Ungültige Zeigeroperation
Hallo an Alle!
Leider habe ich wieder mal ein Problem mit dem Thema Arrays. Ich habe ein dynamisches Array, aus welchem ich ein Element löschen möchte. Der Code dazu sieht wie folgt aus:
Delphi-Quellcode:
Im Programmablauf kann es vorkommen, dass ich die Prozedur so oft aufrufe, bis das Feld keine Elemente mehr hat. Das funktioniert fehlerfrei. Wenn ich das Feld aber mit neuen Daten gefüllt habe und dann erneut diese Prozedur aufrufe, bekomme ich an der Stelle von SetLength immer die Fehlermeldung einer ungültigen Zeigeroperation.
procedure Loesche_Array_Verwaltung(const AIndex: Integer);
var Testwert : Integer; begin if AIndex > High(FeldPlatz) then Exit; if AIndex < Low(FeldPlatz) then Exit; if AIndex = High(FeldPlatz) then begin SetLength(FeldPlatz, Length(FeldPlatz) - 1); Exit; end; Finalize(FeldPlatz[AIndex]); System.Move(FeldPlatz[AIndex +1], FeldPlatz[AIndex], (Length(FeldPlatz) - AIndex -1) * SizeOf(FeldPlatz[0]) + 1); SetLength(FeldPlatz, Length(FeldPlatz) - 1); end; Könnt ihr mir bitte weiterhelfen, wo der Fehler liegt? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz