Есть логическое и физическое удаление. В случае с физическим удалением размер массива меняется в зависимости от количества элементов, а вот в случае логического удаления размер массива будет неизменным, но количество элементов может менятся.
Удаление элементов из статического массива можно реализовать таким образом:
Код:
1 2 3 4 5 6 7 8 9 10 11 | Type
TArray100= array [ 1..100 ] of integer ;
Var
Arr: TArray100;
ArrSize: Integer ;
begin
ArrSize := 100 ;
for i := 1 to ArrSize do Arr[i] := Random( 100 );
ArrSize := 99 ;
for i := 50 to ArrSize do Arr[i] := Arr[i+ 1 ];
end ;
|
Т.е. физически массив как был 100 элементов, так и остался. Удаление элемента, это фактически сдвиг всех последующих после удаляемого элемента к началу. Для получения крайней границы массива мы используем переменную ArrSize