Per ovviare al problema devi poter disporre di una variabile che ti indica il numero di elementi presenti nell'array (ad esempio, itemCount).
Per eliminare un elemento esegui le seguenti operazioni:
1) Shift di tutti gli elementi successivi all'elemento da eliminare
2) Diminuzione del valore della variabile itemCount di 1.
Devi considerare, però, che ogni volta che vai a leggere l'array, lo devi considerare solamente per la lunghezza espressa da itemCount
Esempio di eliminazione:
N.B.: L'elemento non viene fisicamente eliminato (non viene, quindi, rilasciata la memoria corrispondente): ma l'effetto logico è lo stesso.codice:procedure Elimina(posizione: integer) var i: integer; begin for i:=posizione to itemCount-1 do begin tuoArray[i] := tuoArray[i+1]; end; itemCount := itemCount - 1; end;
Ciao.![]()



Rispondi quotando