heap bereinigung
heap bereinigung
Hallo zusammen
gibt es in freepascal eine möglichkeit den heap zu bereinigen, so im stiel des CarbageCollector in Java?
danke für antworten
gruss
gibt es in freepascal eine möglichkeit den heap zu bereinigen, so im stiel des CarbageCollector in Java?
danke für antworten
gruss
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Wenn Du mit "Bereinigen" nicht meinst dass die Elemente entfernt werden sollen, die der Programmierer vergessen hat zu entfernen (wir sind hier nicht in einer .NET Umgebung, die über die Verwendung durch den Programmierer von Objekten Buch führt und dafür zusätzliche Ressourcen verbrät), sondern eine "Heap-Defragmentierung" ansprichst: Das geht nicht, weil überall im Programm Pointer auf im Heap liegende Elemente gehalten werden und man diese also nicht hinterrücks verschieben kann.
-Michael
-Michael
Hy theo und mschnell
Danke für die antworten.
mschnell: Ich meinte eigendlich schon das erste also das entfernen von elementen die der Programmierer vergessen hat, habe jedoch nun das problem gefunden das mir mein ram zumüllt, das währe dann der punkt sauber Programmieren von theo
Nun habe ich aber trozdem noch eine frage, ich habe eine Funktion die mir mit result := TZTable(...) irgend ein table meines datamods zurückgibt. Nun ist jedoch (glaube ich zumindest) das problem das mir die funktion jedesmal wenn es mir ein Table zurückgibt eine neue instanz desjenigen erzeugt. Wie kann ich einenPointer auf das jeweilige Table zurückgeben, gibt es da irgendein tutorial oder anleitung wie man in freepascal mit pointern arbeiten kann?
danke für die antworten
Danke für die antworten.
mschnell: Ich meinte eigendlich schon das erste also das entfernen von elementen die der Programmierer vergessen hat, habe jedoch nun das problem gefunden das mir mein ram zumüllt, das währe dann der punkt sauber Programmieren von theo

Nun habe ich aber trozdem noch eine frage, ich habe eine Funktion die mir mit result := TZTable(...) irgend ein table meines datamods zurückgibt. Nun ist jedoch (glaube ich zumindest) das problem das mir die funktion jedesmal wenn es mir ein Table zurückgibt eine neue instanz desjenigen erzeugt. Wie kann ich einenPointer auf das jeweilige Table zurückgeben, gibt es da irgendein tutorial oder anleitung wie man in freepascal mit pointern arbeiten kann?
danke für die antworten
Windows 7, Lazarus 0.9.28.2 fpc 2.2.4, Firebird 2.1, Zeoslib 6.6.6-stable
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
das kann man ja aber auch umgehen, als Procedure und der Übergabe mit var, dann kannst du sie vor Aufruf erstellen, danach auswerten und freigeben.
Code: Alles auswählen
procedure...;
begin
TObject... := TObject...CREATE;
Rückgabe(Tobject...);
TObject...Free;
end;
procedure Rückgabe(var TRückgabe: TObject...)
Johannes