Zitat von
Sherlock:
Gegenfrage: Wie kann man eigentlich unter Programmkontrolle angeben, welche Speicherart man gerne hätte?
Nur indem man es selbst implementiert, oder eine Speicherverwaltung verwendet, die selbiges unterstützt.
Notwendig/interessant ist dies nur in wenigen Fällen... Um ein praktisches Beispiel zu nennen: Eine Klasse in einer Anwendung fordert mehrere hunderttausend kleine Speicherbereiche an (zum Beispiel Dateinamen). Nutzt diese Klasse den Standard-Heap der Anwendung, dann wird es - trotz Freigabe aller Speicherbereiche - zur Heap-Fragmentierung kommen. Diese ungenutzten "Lücken" im Heap können im Laufe der Zeit dazu führen, dass für eine Anforderung eines größeren Blocks kein zusammenhängender freier Speicherbereich gefunden wird. Es steht also theoretisch genug freier Speicher zur Verfügung, aber nicht genug für große Blöcke. Wenn dies alles zutrifft,
dann kann man darüber nachdenken, für diese "Liste" einen eigenen Heap zu verwenden, der anschließend komplett freigegeben werden kann.
Topic: Für records gibt es Finalize (System.pas).