// Speicherleck (englisch memory leak) werden Fehler in einem Computerprogramm
// genannt, bei denen ein laufender Prozess einen Speicherbereich belegt, diesen
// jedoch weder freigibt noch weiter nutzt. Der folgende Code zeigt eine simple
// Methode, eine Rotine auf Memoryleaks zu überprüfen. Zum testen kann man
// die Zeilen "
Freemem(p);" bzw. "B.free;" löschen.



// Getestet mit D4 unter XP

var 
  beginn, ende: integer; 
 
procedure TForm1.Button1Click(Sender: TObject); 
var 
  P: PChar; 
  B: TBitmap; 
begin 
  beginn := AllocMemSize; 
   // ------ Mach was ----- z.B.: 
  Getmem(P, 100); 
  // ... 
  B := TBitmap.create; 
  // ... 
  Freemem(p); 
  B.free; 
  // --------------------------- 
  ende := AllocMemSize - beginn; 
  if ende <> 0 then showmessage('Memoryleak = ' + Inttostr(ende)) 
  else showmessage('OK'); 
end;



 

Zugriffe seit 6.9.2001 auf Delphi-Ecke