Thema: Delphi Stack Überlauf

Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

Re: Stack Überlauf

  Alt 16. Sep 2006, 22:29
Der Stack ist standardmäßig auf 1 MB begrenzt, damit Endlosrekursionen mit der "Notbremse" gestoppt werden können. Wenn du nun eine so große Variable auf dem Stack anlegst (lokale Variablen sind immer auf dem Stack), dann geht das halt nicht. Deswegen sollte man in deinem Fall eher auf ein dynamische Array zurückgreifen.

Delphi-Quellcode:
const
  size = 1010000;
var
  filestream: TFileStream;
  buffer: array of byte;

  filestream := TFileStream.Create(file, fmOpenReadWrite);
  SetLength(buffer, size); // genug Speicher reservieren, die Freigabe übernimmt Delphi für dich
  filestream.Read(buffer[0], size); // hier immer das erste Zeichen angeben (außer bei .NET)
  Mit Zitat antworten Zitat