Einzelnen Beitrag anzeigen

roadrunner-S51

Registriert seit: 28. Mai 2010
53 Beiträge
 
Delphi 2009 Professional
 
#1

Zugriffsverletzung beim Kürzen eines dyn. Arrays

  Alt 25. Jan 2012, 10:27
Hallo,

ich habe mal wieder einen interessanten Fehler, bei dem ich mir eure Hilfe erhoffe.

Beschreibung:
In einem Programm werden Daten aus einem vorher erstellen dyn. Array ausgelesen. Ist das Auslesen abgeschlossen soll die entsprechende Zeile im dyn. Array gelöscht und das Array somit um ein Element gekürzt werden. Das klappt auch ganz gut, bis ich zum letzen Element (logischerweise Element 0) komme. Dann erhalte ich eine Zugriffsverletzung mit variablen Adressen.
Das kürzendes Feldes erfolgt in einer Prozedur. Wenn ich die aus meinem Gesamtcode rausnehme läuft alles Problemlos, daher vermute ich den Fehler dort.

Code der Prozedur:
Delphi-Quellcode:
procedure Loesche_Array_Element(const AIndex: Integer);
begin
  if Length(Feldplatz) = 1 then
  begin
    SetLength(Feldplatz, 0); // Länge kürzen
    //Feldplatz := nil;
  end
  else
  begin
    Move(Feldplatz[AIndex + 1], Feldplatz[AIndex], SizeOf(Feldplatz[0]) * (Length(Feldplatz) - AIndex - 1)); //Dahinterliegende Daten aufrücken
    SetLength(Feldplatz, Length(Feldplatz) - 1); // Länge kürzen
  end;
end;
Ich hoffe es hat jemand eine Idee, wie ich das Problem lösen kann. Danke schonmal!!!
  Mit Zitat antworten Zitat