Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Jonas Shinaniganz,
28. Aug 2012
Ich denke er hat sich nur bei der deklaration vertan, steht ja auch array "ob" byte;
Jedenfalls finde Ich es nicht in Ordnung, dass man 2 Pointer auf die gleiche Speicherstelle hat und beim Zugriff auf Pointer1 mit SetLength() den Array in der Größe verändert und mit Pointer2 bei SetLength() ein neues Array erhält. So kann der SetLength Befehl ja auch als Copy Befehl "missbraucht" werden?
...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Jonas Shinaniganz,
27. Aug 2012
Also eine Referenz kannst du ja immer noch irgendwo gespeichert haben. In diesem Fall einen typisierten Pointer.
type
TMyDynArray = array of Integer;
PMyDynArray = ^TMyDynArray;
Wenn du jetzt:
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Jonas Shinaniganz,
27. Aug 2012
Sobald man dem dynamischen Array einen Wert zuweist oder Ihn an SetLength übergibt wird der benötigte Speicher reserviert. Man hat also auch in beiden Fällen keine Speicherlöcher.
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Jonas Shinaniganz,
27. Aug 2012
Dynamische Array-Variablen sind implizit Zeiger und werden mit derselben Referenzzählung verwaltet wie lange Strings. Um ein dynamisches Array freizugeben, weisen Sie einer Variable, die das Array referenziert, den Wert nil zu, oder Sie übergeben die Variable an Finalize. Beide Methoden geben das Array unter der Voraussetzung frei, dass keine weiteren Referenzen darauf vorhanden sind. Dynamische...