Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Mehrdimensionales dynamisches Array, Element löschen

  Alt 17. Feb 2011, 11:01
Delphi-Quellcode:
type
  TIntArray = array of Integer;
  PIntArr = ^TIntArray;
  TIntArrayArray = array of PIntArr;
  
  procedure DeleteArrayElement(var AArray: TIntArrayArray; const AIndex: Integer);
  begin
    Dispose(AArray[AIndex]);
    Move(AArray[AIndex + 1], AArray[AIndex], SizeOf(AArray[0]) * (Length(AArray) - AIndex - 1));
    FillChar(AArray[High(AArray)], SizeOf(AArray[0]), 0);
    SetLength(AArray, Length(AArray) - 1);
  end;
FillChar/ZeroMemory nicht vergessen, da sonst das letzte Feld doppelt vorkommt, dann von SetLength freigegeben würde und somit das vorletzte (nun letzte) Feld auf nicht mehr existierende Daten zeigen könnte.
$2B or not $2B
  Mit Zitat antworten Zitat