AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

dynamische Array freigeben

Ein Thema von theomega · begonnen am 29. Aug 2003 · letzter Beitrag vom 30. Aug 2003
Antwort Antwort
Benutzerbild von theomega
theomega

Registriert seit: 18. Jun 2002
684 Beiträge
 
#1

dynamische Array freigeben

  Alt 29. Aug 2003, 15:37
Hallo Leute
ich nute ein Dynamisches array via
Code:
var ar: array of string
begin;
setlength(ar,5);
ar[1] := 'eins';
.
.
.
nach all den Operationen muß ich doch wenn ich fertig bin, das Array wieder freigeben oder? Das macht Delphi nicht selber? Und wie geht das denn?

danke und Grüße
TO
  Mit Zitat antworten Zitat
axelf98

Registriert seit: 27. Aug 2003
Ort: Ennepetal
440 Beiträge
 
Delphi 2005 Personal
 
#2

Re: dynamische Array freigeben

  Alt 29. Aug 2003, 15:41
Zitat von theomega:
Array wieder freigeben oder?
Hmm, du hast ja auch keinen Create-Befehl, nur die setlength-Prozedur.
Ich würde sagen, dass
setlength(Array1,0); reicht, weil dann keine Variablen mehr drin sind und auch kein Speicher mehr dafür reserviert wird.
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#3

Re: dynamische Array freigeben

  Alt 29. Aug 2003, 16:09
Einfach, wie axelf98 geschrieben hat, SetLength mit der Größe 0 aufrufen, wobei man das nicht wirklich muß.
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#4

Re: dynamische Array freigeben

  Alt 30. Aug 2003, 13:02
Selbst wenn die Länge des Array 0 ist, heißt das nicht, das kein Speicher mehr verbraucht wird. Auch wenn es sich nur um 8 Byte oder so handelt, die für die Bereitstellung des dyn. Arrays draufgehen, oder irre ich mich da?

Wie man es richtig freigibt würde ich allerdings auch gerne wissen.
Variablen allerding gibt man ja auch net frei, oder?

Grüße Minz
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: dynamische Array freigeben

  Alt 30. Aug 2003, 13:30
Moin The Omega,

ich schlage mal vor, dass Du Dir auch (noch) mal den Eintrag "Dynamische Arrays" in der Hilfe anschaust.
Enthält Dein dynamisches Array beispielsweise Objekte, so darfst Du nicht vergessen, diese freizugeben, bevor Du das Array löschst bzw. die Grösse verringerst.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von theomega
theomega

Registriert seit: 18. Jun 2002
684 Beiträge
 
#6

Re: dynamische Array freigeben

  Alt 30. Aug 2003, 13:40
Es enthält wie oben angegeben aber nur Sttrings!
  Mit Zitat antworten Zitat
urs.liska

Registriert seit: 6. Aug 2003
Ort: Freiburg
195 Beiträge
 
Delphi 6 Professional
 
#7

Re: dynamische Array freigeben

  Alt 30. Aug 2003, 13:52
wenn das Array nur einfache Datentypen enthält (wie z.B. Strings), reicht es, die Länge auf 0 zu setzen.
Wenn die Variable aus dem Gültigkeitsbereich gerät, wird sie auch komplett freigegeben.
Wenn Du sie in einer Methode deklarierst, ist die variable nach Verlassen der Methode komplett 'weg'.
Wenn die Variable global oder Feld eines Objektes ist, besteht sie natürlich weiterhin, aber dann macht es ja nichts.

Grüße
Urs
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: dynamische Array freigeben

  Alt 30. Aug 2003, 14:57
Moin Zusammen,

Zitat von Delphi-Hilfe: 'Dynamische Arrays:':
Um ein dynamisches Array freizugeben, weisen Sie einer Variablen, die das Array referenziert, den Wert nil zu, oder Sie übergeben die Variable an Finalize.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz