AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Für diesen Vorgang ist nicht genügend Speicher verfügbar
Thema durchsuchen
Ansicht
Themen-Optionen

Für diesen Vorgang ist nicht genügend Speicher verfügbar

Ein Thema von Stephan · begonnen am 2. Okt 2002 · letzter Beitrag vom 4. Okt 2002
 
Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#12
  Alt 3. Okt 2002, 17:28
Hi Stephan,

du musst immer etwas freigeben, wenn du Speicher reservierst. Da gibt es bestimmte Befehlspaare.
  • Zu jedem TObject.Create muss auch ein TObject.Free. Wichtig ist, dass du nicht vor dem freigeben der Variable ein anderes Objekt zuweist:
    Code:
    var
      a: array[1..100] of TStringList;
      i: Integer;

    // ...

    for i := 1 to 100 do
      a[i] := TStringList.Create;
    // Arbeiten mit den Stringlists
    for i := 1 to 100 do
      a[i] := TStringList.Create;
    Die ersten 100 Stringlists sind verloren, du wirst nie wieder auf sie zugreifen können. Richtig wäre folgendes:
    Code:
    for i := 1 to 100 do
      a[i] := TStringList.Create;
    for i := 1 to 100 do
      a[i] := TStringList.Free;
    // Arbeiten mit den Stringlists
    for i := 1 to 100 do
      a[i] := TStringList.Create;
    for i := 1 to 100 do
      a[i] := TStringList.Free;
  • Zu jedem GetMem/StrAlloc etc. muss auch ein FreeMem/StrDispose etc.

    Auch hier gilt: wenn du einem Pointer eine neue Speicherstelle zuweist, dann wars das.

    Tödlich:
    Code:
    var
      p: Pointer;

    // ...

    GetMem(p, 10240); // 10 kb Speicher
    // Arbeiten mit p
    GetMem(p, 20480); // 20 kb
    Richtig:
    Code:
    GetMem(p, 10240); // 10 kb Speicher
    FreeMem(p);
    // Arbeiten mit p
    GetMem(p, 20480);
    FreeMem(p);
MfG,
d3g
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat
 


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 05:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz