korrekt isses eh nicht, denn ich komme auf 3,8 MB (inklusive der Verwaltungsdaten für die Arrays)
Delphi-Quellcode:
procedure möglich(count: integer);
var Arr: array of array[0..10000] of integer;
begin
SetLength(Arr, count);
...
end;
Delphi-Quellcode:
procedure möglich(count: integer);
var Arr: array[0..10000] of array of integer;
i: Integer;
begin
for i := Low(Arr) to High(Arr) do
SetLength(Arr[i], count);
...
end;
PS: klar gibt es fast immer einen gewissen Overhead
die Speichermanager reservieren nunmal in gerundeten Größen
bei Windows-Manager kann man Speicher in 4 KB-Schritten anfordern und bis auf den nächsten 64-KB-Schritt kann da nichts mehr reserviert werden.
der DelphiMM verwalten dagengen zwar kleinere Bereiche, aber auch diese sind "genormt"
und dann holt sich Delphi bei Windows den Speicher.
also selbst wenn man nur 1 Byte reserviert, dann ist immer mehr belegt.